国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

Java實戰篇:設計自己的Annotation

開發 后端
設計自己的Annotation在Java的世界正鋪天蓋地展開,有空寫這一篇簡單的設計Annotations的文章,算是關于Annotation入門的文章,希望能幫助Java開發者。

Annotation在Java的世界正鋪天蓋地展開,有空寫這一篇簡單的設計Annotations的文章,算是關于Annotation入門的文章吧,希望能各位們能拋磚,共同學習Java實戰。

了解一下java1.5起默認的三個annotation類型:

一個是@Override:只能用在方法之上的,用來告訴別人這一個方法是改寫父類的。

一個是@Deprecated:建議別人不要使用舊的API的時候用的,編譯的時候會用產生警告信息,可以設定在程序里的所有的元素上.

一個是@SuppressWarnings:這一個類型可以來暫時把一些警告信息消息關閉.

如果不清楚上面三個類型的具體用法,各位可以baidu或google一下的,很簡單的。

第二部分:講一下annotation的概念,再來講一下怎樣設計自己的annotation.

首先在jdk自帶的java.lang.annotation包里,打開如下幾個源文件:

1、源文件Target.java

代碼

@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.ANNOTATION_TYPE)
public @interface Target {
 ElementType[] value();

其中的@interface是一個關鍵字,在設計annotations的時候必須把一個類型定義為@interface,而不能用class或interface關鍵字(會不會覺得sun有點吝嗇,偏偏搞得與interface這么像).

2、源文件Retention.java

代碼

@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.ANNOTATION_TYPE)
public @interface Retention {
 RetentionPolicy value();

看到這里,大家可能都模糊了,都不知道在說什么,別急,往下看一下.

在上面的文件都用到了RetentionPolicy,ElementType這兩個字段,你可能就會猜到這是兩個java文件.的確,這兩個文件的源代碼如下:

3、源文件RetentionPolicy.java

代碼

public enum RetentionPolicy {
 SOURCE,
 CLASS,
 RUNTIME

這是一個enum類型,共有三個值,分別是SOURCE,CLASS 和 RUNTIME.

SOURCE代表的是這個Annotation類型的信息只會保留在程序源碼里,源碼如果經過了編譯之后,Annotation的數據就會消失,并不會保留在編譯好的.class文件里面。

ClASS的意思是這個Annotation類型的信息保留在程序源碼里,同時也會保留在編譯好的.class文件里面,在執行的時候,并不會把這一些信息加載到虛擬機(JVM)中去.注意一下,當你沒有設定一個Annotation類型的Retention值時,系統默認值是CLASS.

第三個,是RUNTIME,表示在源碼、編譯好的.class文件中保留信息,在執行的時候會把這一些信息加載到JVM中去的.
  舉一個例子,如@Override里面的Retention設為SOURCE,編譯成功了就不要這一些檢查的信息;相反,@Deprecated里面的Retention設為RUNTIME,表示除了在編譯時會警告我們使用了哪個被Deprecated的方法,在執行的時候也可以查出該方法是否被Deprecated.

4、源文件ElementType.java

代碼

public enum ElementType {
 TYPE, FIELD, METHOD, PARAMETER, CONSTRUCTOR,
 LOCAL_VARIABLE, ANNOTATION_TYPE,PACKAGE

@Target里面的ElementType是用來指定Annotation類型可以用在哪一些元素上的.說明一下:TYPE(類型), FIELD(屬性), METHOD(方法), PARAMETER(參數), CONSTRUCTOR(構造函數),LOCAL_VARIABLE(局部變量), ANNOTATION_TYPE,PACKAGE(包),其中的TYPE(類型)是指可以用在Class,Interface,Enum和Annotation類型上.

另外,從1的源代碼可以看出,@Target自己也用了自己來聲明自己,只能用在ANNOTATION_TYPE之上.
如果一個Annotation類型沒有指明@Target使用在哪些元素上,那么它可以使用在任何元素之上,這里的元素指的是上面的八種類型.

舉幾個正確的例子:

@Target(ElementType.METHOD)
@Target(value=ElementType.METHOD)
@Target(ElementType.METHOD,ElementType.CONSTRUCTOR) 

具體參考一下javadoc文檔

上面一下1和2的源文件,它們都使用了@Documented,@Documented的目的就是讓這一個設計Annotation類型的信息能夠顯示在javaAPI說明文檔上;沒有添加的話,使用javadoc生成API文檔的時候就會找不到這一個類型生成的信息.

另外一點,如果需要把Annotation的數據繼承給子類,那么就會用到@Inherited這一個Annotation類型.

【編輯推薦】

  1. 淺談在NetBeans IDE中使用JavaFX
  2. Java編程技術中漢字問題的分析及解決
  3. Java虛擬機幾個命令行參數說明
  4. 基于JavaScript的REST客戶端框架
  5. 在Netbeans上安裝JavaFX插件
責任編輯:王觀 來源: 論壇整理
相關推薦

2023-02-23 12:02:12

OKR跟蹤項目管理

2017-11-08 13:31:34

分層架構代碼DDD

2019-05-21 14:33:01

2021-07-02 10:10:55

SecurityJWT系統

2018-05-08 18:26:49

數據庫MySQL性能

2021-07-05 08:41:49

RedisGEO系統

2016-12-09 13:45:21

RNN大數據深度學習

2023-02-23 10:03:57

2010-11-09 10:03:26

2021-04-29 09:40:32

測試IDEAirtest

2023-02-23 10:11:15

OKR項目管理

2021-09-08 09:48:39

數據庫工具技術

2016-08-31 09:19:57

2025-07-15 10:06:54

2018-01-10 09:33:18

數據庫SQL查詢優化Java Web

2021-07-06 08:41:54

RedisGeo 類型數據類型

2021-09-09 08:55:50

Python項目驗證碼

2025-04-28 02:22:00

2023-02-23 12:15:05

2023-11-21 08:25:09

點贊
收藏

51CTO技術棧公眾號

国产freexxxx性播放麻豆| 国产精品资源在线| 色多多视频在线播放| 亚洲免费中文字幕| 翔田千里一区二区| 国产主播福利在线| 国产精品video| 国产精品网站一区| 国产激情精品一区二区三区| 国产自产在线视频| 亚洲男人7777| 国产一区视频网站| 午夜影院一区| 欧美 另类 交| 亚洲精品美女免费| 麻豆精品一区二区三区| 国产最新在线| 欧美男人的天堂| 欧美视频完全免费看| 亚洲香蕉网站| 日本在线看片免费人成视1000| 粉嫩精品一区二区三区在线观看| 黑人巨大精品欧美一区二区免费| 青青草成人影院| 三区在线观看| 国产综合18久久久久久| 7777精品伊人久久久大香线蕉超级流畅 | 久久人人爽人人爽人人片av高请| 亚洲一区二区五区| 国产美女av一区二区三区| 欧美丰满日韩| 成人自拍视频| 日韩av中字| 国产成人l区| 美女免费久久| 亚洲激情在线观看视频| 波多野结衣与黑人| 久久精品2019中文字幕| 国产精品福利影院| 亚洲日本三级| 国产厕拍一区| 亚洲乱码精品一二三四区日韩在线| 菠萝菠萝蜜在线观看| 亚洲一卡二卡区| 亚洲天堂开心观看| 国产婷婷色一区二区三区在线| 久久97精品| 国产特级嫩嫩嫩bbb| 国产天堂av| 成人网免费看| eeuss在线观看| 少妇**av毛片在线看| 999香蕉视频| 日韩欧美一区二| 黄色一级大片免费| 老司机午夜网站| 影音欧美亚洲| 天堂av一区二区| 毛片在线视频观看| 亚洲色图38p| 丁香婷婷激情| 国产中文字幕在线| 成人性爱视频在线观看| 国内精品久久久久久野外| 色老头在线观看| 电影亚洲精品噜噜在线观看 | 国产午夜精品视频一区二区三区| 国产成人午夜视频网址| 精品盗摄一区二区三区| 一区二区三区影院| 色哦色哦哦色天天综合| 91免费的视频在线播放| 成人精品国产一区二区4080| 一本久久青青| 高潮毛片在线观看| 久草免费福利在线| 国产精品丝袜高跟| 亚洲精品99999| 国产乱人伦偷精品视频免下载| 97高清免费视频| 久久久久成人精品| 亚洲美女视频一区| 国产精品卡一卡二卡三| 91精品国产手机| 欧美一区免费视频| 裤袜国产欧美精品一区| 久久精品国产99久久| 国产人成亚洲第一网站在线播放| 日韩一级片网址| 日韩午夜av在线| 鬼打鬼之黄金道士1992林正英| 亚洲一区精品电影| 好男人www社区| 波多野结衣中文在线| 欧美激情99| 久久网这里都是精品| 91精品久久久久久蜜臀| 国产精品久久久| av手机在线看| 77成人影视| 国产精品成人网| 97免费视频在线| 性chinese极品按摩| 四虎精品在线观看| www.成人在线| 麻豆乱码国产一区二区三区| 欧美少妇在线观看| 写真福利精品福利在线观看| 国产一区美女在线| 亚洲精品www久久久| 久久久久福利视频| 粉嫩一区二区三区| thepron国产精品| 日韩中文字幕国产| 一区二区三区不卡在线| 天堂资源av| 久久精品66| 亚洲中午字幕| 久久久精品综合| 一本高清dvd不卡在线观看| 在线视频你懂得一区二区三区| 亚洲精品大片www| 欧美日本韩国一区| 精品国内亚洲在观看18黄 | 欧美夫妻性生活视频| 在线视频资源站| 99久久久无码国产精品| 日韩精彩视频| 国产手机视频一区二区| 青青草99啪国产免费| 日日狠狠久久| 一区二区成人精品| 桃色一区二区| 欧美精品一区二区三区一线天视频| 成年人免费网站| 粉嫩嫩av羞羞动漫久久久| 日本一区二区在线视频| 亚洲区欧美区| 91免费观看| 一区二区国产精品| 国产精品中文在线| 这里有精品可以观看| 亚洲精品视频免费观看| www.好吊操| 国精品一区二区三区| 中文字幕精品久久| 四虎影院在线播放| 国产欧美日韩精品一区| 亚洲欧洲精品在线| 妖精一区二区三区精品视频 | 极品美女销魂一区二区三区免费| 精品中文字幕乱| 96av在线| 欧美综合欧美视频| 日本女优北野望在线电影| 美女视频黄频大全不卡视频在线播放 | 麻豆国产欧美日韩综合精品二区| www.欧美黄色| 亚洲精品国产视频| 国产主播中文字幕| 免费久久精品| 日韩一区二区在线免费观看| 91中文字精品一区二区| 中文在线一二区| 成人的网站免费观看| 国产一区二区黄色| 国产在线日韩| 成人美女免费网站视频| 丝袜美腿综合| 欧美人在线观看| 看亚洲a级一级毛片| 最近更新的2019中文字幕| 东京一区二区| 亚洲视频综合网| 国产 日韩 欧美一区| 亚洲欧美成人网| av资源在线| 日韩精品免费综合视频在线播放 | 欧美专区福利在线| 国产深夜视频在线观看| 一区二区三区精品久久久| 一区不卡视频| 亚洲视频日本| 国产91精品青草社区| 奇米一区二区| 亚洲电影免费观看高清完整版在线| 男男视频在线观看网站| 狠狠色丁香久久婷婷综合_中| 青青青国产精品一区二区| 91超碰在线| 91高清视频免费看| 中文字幕网在线| 欧美日韩国产一级片| 一区二区三区四区视频在线| **日韩最新| 精品国产一区二区在线| 91福利精品在线观看| www.欧美精品一二三区| 日本中文字幕在线一区| 国产精品美女999|