最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(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,注解的評論 (共 條)

分享到微博請遵守國家法律
手机| 忻州市| 烟台市| 利津县| 孟津县| 扎兰屯市| 枝江市| 永新县| 封丘县| 巨野县| 来凤县| 卢氏县| 汝州市| 淮南市| 宣汉县| 海南省| 随州市| 普定县| 嘉义县| 绥阳县| 天峻县| 辰溪县| 莱州市| 定襄县| 二连浩特市| 宿松县| 哈密市| 寻乌县| 东城区| 昌江| 东乡县| 康保县| 临猗县| 九台市| 满洲里市| 望江县| 奉节县| 龙口市| 焦作市| 吉水县| 德江县|