国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

零基礎(chǔ)學java之javaSE,注解

2020-11-18 16:41 作者:每天一個禿頂小技巧  | 我要投稿

第一節(jié) 反射應用:完善DBUtil,提取select()

1.1 認識ResultSetMetaData

利用ResultSet的getMetaData的方法可以獲得ResultSetMeta對象,而ResultSetMetaData存儲了 ResultSet的MetaData。

所謂的MetaData在英文中的解釋為“Data about Data”,直譯成中文則為“有關(guān)數(shù)據(jù)的數(shù)據(jù)”或者“描述數(shù)據(jù)的數(shù)據(jù)”,一般翻譯為“元數(shù)據(jù)”,實際上就是描述及解釋含義的數(shù)據(jù)。

以Result的MetaData為例,ResultSet是以表格的形式存在,所以MetaData就包括了數(shù)據(jù)的字段名稱、類型以及數(shù)目等表格所必須具備的信息。就是其結(jié)構(gòu)信息(就是desc tablename所顯示的內(nèi)容)。

1.2 提取DBUtil的select()

【示例2】提取DBUtil類的查詢方法

1.3功能2:簡化DAO的select方法

【示例3】簡化后的DAO層查詢代碼

第二節(jié) 注解

2.1 認識注解
Annotation ,JDK1.5新提供的技術(shù)
我們在編程中經(jīng)常會使用到注解,作用有:
1)編譯檢查:比如@SuppressWarnings, @Deprecated 和 @Override 都具有編譯檢查作用
2)替代配置文件:使用反射來讀取注解信息
目前大部分框架(如Spring)都使用了注解簡化代碼并提高編碼的效率(使用注解之前使用的xml進行配置)
注解其實就是代碼里的特殊標記,它用于替代配置文件:傳統(tǒng)方式通過配置文件告訴類如何運行,有了注解技術(shù)后,開發(fā)人員可以通過注解告訴類如何運行。
在Java技術(shù)里注解的典型應用是:可以通過反射技術(shù)去得到類里面的注解,以決定怎么去運行類。 注解可以標記在包、類、屬性、方法,方法參數(shù)以及局部變量上,且同一個地方可以同時標記多個注解。
注解可以在編譯(source),類加載(class),運行時(runtime)被讀取,并執(zhí)行相應的處理,以便于其他工具補充信息或者進行部署

2.2 內(nèi)置注解
主要有三個內(nèi)置注解
● @Override - 檢查該方法是否是重載方法。如果發(fā)現(xiàn)其父類,或者是引用的接口中并沒有該方法時,會報編譯錯誤。
● @Deprecated - 標記過時方法。如果使用該方法,會報編譯警告。
● @SuppressWarnings - 指示編譯器去忽略注解中聲明的警告。



從 Java 7 開始,額外添加了 3 個注解:
● @SafeVarargs - Java 7 開始支持,忽略任何使用參數(shù)為泛型變量的方法或構(gòu)造函數(shù)調(diào)用產(chǎn)生的警告。
● @FunctionalInterface - Java 8 開始支持,標識一個匿名函數(shù)或函數(shù)式接口。
● @Repeatable - Java 8 開始支持,標識某注解可以在同一個聲明上使用多次。

2.3 元注解
元注解是指注解的注解,在JDK 1.5中提供了4個標準的用來對注解類型進行注解的注解類。可以使用這4個元注解來對我們自定義的注解類型進行注解

1. @Retention-用來約束注解的生命周期,分別有三個值,源碼級別(source),類文件級別(class)或者運行時級別(runtime),若沒有 @Retention,則默認是 RetentionPolicy.CLASS。其含有如下:
● SOURCE:注解將被編譯器丟棄(該類型的注解信息只會保留在源碼里,源碼經(jīng)過編譯后,注解信息會被丟棄,不會保留在編譯好的class文件里)
● CLASS:注解在class文件中可用,但會被VM丟棄(該類型的注解信息會保留在源碼里和class文件里,在執(zhí)行的時候,不會加載到虛擬機中)。
● RUNTIME:注解信息將在運行期(JVM)也保留,因此可以通過反射機制讀取注解的信息(源碼、class文件和執(zhí)行的時候都有注解的信息),如SpringMvc中的@Controller、@Autowired、@RequestMapping等。
2. @Target -用來約束注解可以應用的地方(如方法、類或字段),其中ElementType是枚舉類型。若沒有 @Target,則該 Annotation 可以用于任何地方。

3. @Documented -?標記這些注解是否包含在用戶文檔中。
4. @Inherited -?指示注解類型被自動繼承。如果在注解類型聲明中存在 Inherited 元注解,并且用戶在某一類聲明中查詢該注解類型,同時該類聲明中沒有此類型的注解,則將在該類的超類中自動查詢該注解類型。

3.1 自定義注解

【示例5】自定義注解

總結(jié):
? 定義注解的關(guān)鍵字是@interface
? 自定義注解中可以定義多個配置參數(shù),不是成員方法,不是成員變量;說明參數(shù)的名稱,以及參數(shù)值的類型
? 如果只有一個配置參數(shù),一般命名為value
? 如果配置參數(shù)是value,并且只有一個配置參數(shù),value可以省略

注意:
? 定義注解時,意味著它實現(xiàn)了 java.lang.annotation.Annotation 接口,即該注解就是一個Annotation。
? 和我們通常的 implements實現(xiàn)接口的方法不同。Annotation 接口的實現(xiàn)細節(jié)都由編譯器完成。通過 @interface 定義注解后,該注解不能繼承其他注解或接口。
? 注解常見的API及其關(guān)系如下


3.2 使用反射讀取注解
目前大部分框架(如Spring、MyBatis、SpringMVC)都使用了注解簡化代碼并提高編碼的效率(使用注解之前使用的xml進行配置)。


【示例6】模擬實現(xiàn)MyBatis的注解并使用反射讀取

本文摘自網(wǎng)絡

如果你也對java感興趣,你可以點擊下方了解一下

JAVA全套課程_尚學堂Java入門_Java零基礎(chǔ)必備_Java編程課程_Java核心基礎(chǔ)

零基礎(chǔ)學java之javaSE,注解的評論 (共 條)

分享到微博請遵守國家法律
福海县| 什邡市| 阿城市| 九江县| 永丰县| 靖西县| 调兵山市| 台南县| 拉萨市| 桑日县| 大冶市| 平泉县| 民和| 常德市| 呼和浩特市| 蛟河市| 安康市| 诏安县| 旬阳县| 时尚| 竹溪县| 山东| 彩票| 汝州市| 环江| 舟山市| 丽江市| 阿巴嘎旗| 旺苍县| 积石山| 元氏县| 郧西县| 铜鼓县| 聂荣县| 大城县| 洞头县| 新乡县| 津市市| 仙游县| 栾川县| 通辽市|