精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

理解Java基礎之注解Annotation

開發 后端
注解Annotation在Java開發中比較常見,它提供了一種安全的類似注釋的機制,用來將任何的信息或元數據(metadata)與程序元素(類、方法、成員變量等)進行關聯。

一、概念  

AnnontationJava5開始引入的新特征。中文名稱一般叫注解。它提供了一種安全的類似注釋的機制,用來將任何的信息或元數據(metadata)與程序元素(類、方法、成員變量等)進行關聯。

  更通俗的意思是為程序的元素(類、方法、成員變量)加上更直觀更明了的說明,這些說明信息是與程序的業務邏輯無關,并且是供指定的工具或框架使用的。

  Annontation像一種修飾符一樣,應用于包、類型、構造方法、方法、成員變量、參數及本地變量的聲明語句中。

  、原理

  Annotation其實是一種接口。通過Java的反射機制相關的API來訪問annotation信息。相關類(框架或工具中的類)根據這些信息來決定如何使用該程序元素或改變它們的行為。

  annotation是不會影響程序代碼的執行,無論annotation怎么變化,代碼都始終如一地執行。

  Java語言解釋器在工作時會忽略這些annotation,因此在JVM 中這些annotation是“不起作用”的,只能通過配套的工具才能對這些annontaion類型的信息進行訪問和處理。

  Annotation與interface的異同:

  1)、Annotation類型使用關鍵字@interface而不是interface。

  這個關鍵字聲明隱含了一個信息:它是繼承了java.lang.annotation.Annotation接口,并非聲明了一個interface

  2)、Annotation類型、方法定義是獨特的、受限制的。

  Annotation類型的方法必須聲明為無參數、無異常拋出的。這些方法定義了annotation的成員:方法名成為了成員名,而方法返回值成為了成員的類型。而方法返回值類型必須為primitive類型、Class類型、枚舉類型、annotation類型或者由前面類型之一作為元素的一維數組。方法的后面可以使用default和一個默認數值來聲明成員的默認值,null不能作為成員默認值,這與我們在非annotation類型中定義方法有很大不同。

  Annotation類型和它的方法不能使用annotation類型的參數、成員不能是generic。只有返回值類型是Class的方法可以在annotation類型中使用generic,因為此方法能夠用類轉換將各種類型轉換為Class。

  3)、Annotation類型又與接口有著近似之處。

  它們可以定義常量、靜態成員類型(比如枚舉類型定義)。Annotation類型也可以如接口一般被實現或者繼承。

  、應用場合

  annotation一般作為一種輔助途徑,應用在軟件框架或工具中,在這些工具類中根據不同的annontation注解信息采取不同的處理過程或改變相應程序元素(類、方法及成員變量等)的行為。

  例如:Junit、Struts、Spring等流行工具框架中均廣泛使用了annontion。使代碼的靈活性大提高。

  、常見標準的Annotation

  從java5版本開始,自帶了三種標準annontation類型,

  (1)、Override

  java.lang.Override是一個marker annotation類型,它被用作標注方法。它說明了被標注的方法重載了父類的方法,起到了斷言的作用。如果我們使用了這種annotation在一個沒有覆蓋父類方法的方法時,java編譯器將以一個編譯錯誤來警示。

  這個annotaton常常在我們試圖覆蓋父類方法而確又寫錯了方法名時加一個保障性的校驗過程。

  (2)、Deprecated

  Deprecated也是一種marker annotation。當一個類型或者類型成員使用@Deprecated修飾的話,編譯器將不鼓勵使用這個被標注的程序元素。所以使用這種修飾具有一定的“延續性”:如果我們在代碼中通過繼承或者覆蓋的方式使用了這個過時的類型或者成員,雖然繼承或者覆蓋后的類型或者成員并不是被聲明為@Deprecated,但編譯器仍然要報警。

  注意:@Deprecated這個annotation類型和javadoc中的@deprecated這個tag是有區別的:前者是java編譯器識別的,而后者是被javadoc工具所識別用來生成文檔(包含程序成員為什么已經過時、它應當如何被禁止或者替代的描述)。

  (3)、SuppressWarnings

  此注解能告訴Java編譯器關閉對類、方法及成員變量的警告。

  有時編譯時會提出一些警告,對于這些警告有的隱藏著Bug,有的是無法避免的,對于某些不想看到的警告信息,可以通過這個注解來屏蔽。

  SuppressWarning不是一個marker annotation。它有一個類型為String[]的成員,這個成員的值為被禁止的警告名。對于javac編譯器來講,被-Xlint選項有效的警告名也同樣對@SuppressWarings有效,同時編譯器忽略掉無法識別的警告名。

  annotation語法允許在annotation名后跟括號,括號中是使用逗號分割的name=value對用于為annotation的成員賦值:

  代碼:

  1.   @SuppressWarnings(value={"unchecked","fallthrough"})  
  2. publicvoidlintTrap() {   
  3. /*sloppy method body omitted */

  在這個例子中SuppressWarnings annotation類型只定義了一個單一的成員,所以只有一個簡單的value={...}作為name=value對。又由于成員值是一個數組,故使用大括號來聲明數組值。

  注意:我們可以在下面的情況中縮寫annotation:當annotation只有單一成員,并成員命名為"value="。這時可以省去"value="。比如將上面的SuppressWarnings annotation進行縮寫:

  代碼:

  1.   @SuppressWarnings("unchecked"

  如果SuppressWarnings所聲明的被禁止警告個數為一個時,可以省去大括號:

  1.   @SuppressWarnings("unchecked"

  、自定義annontation示例

  示例共涉及四個類:

  清單1:Author.java

  1. packagecom.magc.annotation;  
  2. importjava.lang.annotation.Documented;  
  3. importjava.lang.annotation.ElementType;  
  4. importjava.lang.annotation.Retention;  
  5. importjava.lang.annotation.RetentionPolicy;  
  6. importjava.lang.annotation.Target;  
  7. /*** 定義作者信息,name和group  
  8.   * @authormagc  
  9.   **/@Retention(RetentionPolicy.RUNTIME)  
  10.   @Target(ElementType.METHOD)  
  11.   @Documentedpublic@interfaceAuthor {  
  12.   String name();  
  13.   String group();  
  14.   } 

  清單2:Description.java

  1.  /*** */ 
  2. packagecom.magc.annotation;  
  3. importjava.lang.annotation.Documented;  
  4. importjava.lang.annotation.ElementType;  
  5. importjava.lang.annotation.Retention;  
  6. importjava.lang.annotation.RetentionPolicy;  
  7. importjava.lang.annotation.Target;  
  8. /*** @authormagc  
  9.   *  
  10.   * 定義描述信息 value*/@Retention(RetentionPolicy.RUNTIME)  
  11.   @Target(ElementType.TYPE)  
  12.   @Documentedpublic@interfaceDescription {  
  13.   String value();  
  14.   } 

  清單3:Utility.java

  1.   packagecom.magc.annotation;  
  2.   @Description(value ="這是一個有用的工具類")publicclassUtility {  
  3.   @Author(name ="haoran_202",group="com.magc")publicString work()  
  4.   {return"work over!";  
  5.   }  
  6.  } 

  注:這是個普通的Java類,運行了@Description和@Author注解。

  清單3:AnalysisAnnotation.java

  1. packagecom.magc.annotation;  
  2. importjava.lang.reflect.Method;  
  3. publicclassAnalysisAnnotation {  
  4. /*** 在運行時分析處理annotation類型的信息  
  5.  *  
  6.   * */ 
  7.   publicstaticvoidmain(String[] args)   
  8. {try{//通過運行時反射API獲得annotation信息  
  9.   Class rt_class =Class.forName("com.magc.annotation.Utility");  
  10.   Method[] methods =rt_class.getMethods();  
  11. booleanflag =rt_class.isAnnotationPresent(Description.class);  
  12. if(flag)  
  13.   {  
  14.   Description description =(Description)rt_class.getAnnotation(Description.class);  
  15.   System.out.println("Utility's Description--->"+description.value());  
  16. for(Method method : methods) {if(method.isAnnotationPresent(Author.class))  
  17.   {  
  18.   Author author =(Author)method.getAnnotation(Author.class);  
  19.   System.out.println("Utility's Author--->"+author.name()+"from "+author.group());  
  20.   }  
  21.   }  
  22.   }  
  23.   } catch(ClassNotFoundException e) {  
  24.   e.printStackTrace();  
  25.   }  
  26.   }  
  27.   } 

  注:這是個與自定義@Description和@Author配套的基礎框架或工具類,通過此類來獲得與普通Java類Utility.java關聯的信息,即描述和作者。

  運行AnalysisAnnotation,輸出結果為:

Utility's Description--->這是一個有用的工具類
Utility's Author--->haoran_202 from com.magc

原文鏈接:http://www.cnblogs.com/mandroid/archive/2011/07/18/2109829.html

責任編輯:彭凡 來源: 博客園
相關推薦

2021-03-01 07:55:41

Java annotation注解

2023-10-25 13:42:19

Java面向對象

2024-11-14 11:39:10

Order注解接口

2017-05-12 15:47:15

Spring BootMybatis Ann Web

2011-06-16 08:48:33

Java

2011-07-04 16:04:20

Applet

2017-03-08 10:06:11

Java技術點注解

2022-06-09 07:27:14

JavaSpring容器

2019-10-18 16:05:32

框架開發Java

2023-03-29 14:58:17

Java元數據Java 注解

2011-07-05 14:42:46

java

2011-07-22 17:14:53

java

2022-10-21 14:12:06

2021-04-13 08:25:12

測試開發Java注解Spring

2021-02-17 11:25:33

前端JavaScriptthis

2011-11-22 10:11:56

BGP路由環路

2022-10-12 23:39:46

Java接口屬性

2021-07-11 12:12:49

.NETJWTjson

2017-11-14 14:41:11

Java泛型IO

2020-11-02 13:06:42

Java裝箱拆箱
點贊
收藏

51CTO技術棧公眾號

亚洲一二三四视频| www.成人av.com| 五月婷婷综合在线观看| 日本高清不卡一区二区三区视频| 欧美精品一卡| 欧美亚洲国产一区在线观看网站 | 精品一区二区三区无码视频| 成年人网站免费在线观看| 国产欧美日韩成人| 日韩免费久久| 欧美性xxxx极品hd欧美风情| 91网站在线看| 亚洲黄色激情视频| 欧美videossex另类| 欧美精品一卡| 麻豆一区二区三| 成人做爰69片免费看网站| 欧美性三三影院| 日韩在线观看精品| 中文字幕国产亚洲| 韩日午夜在线资源一区二区| 久草网在线观看| 国产91足控脚交在线观看| 欧美日韩有码| 第四色日韩影片| 国产美女主播在线观看| 天堂av资源网| 一二三四区在线观看| 日韩精品免费一区二区在线观看| 影音先锋久久精品| www在线观看黄色| 国产aⅴ精品一区二区三区色成熟| 国产成人久久久精品一区| 久久久久久av无码免费网站| 欧美wwwww| 亚洲欧洲午夜一线一品| 中文在线观看免费视频| 国产一区二区三区免费观看在线| 色视频成人在线观看免| 欧美成人免费在线观看视频| 一色桃子av在线| 亚洲欧美在线aaa| 性刺激综合网| av在线日韩国产精品| 91麻豆国产香蕉久久精品| 国产精品一区二| www久久久com| 国产毛片一区二区| 亚洲一区二区久久久久久| 亚洲熟妇av乱码在线观看| 久久这里只有| 日韩美女av在线免费观看| 日本高清www免费视频| 国内久久精品| 欧美夫妻性视频| 538精品在线观看| 欧美激情偷拍| 久久久久久91| 国产精品99精品| 一本久道综合久久精品| 66m—66摸成人免费视频| 国产真人真事毛片| 制服诱惑一区二区| 97超碰国产精品女人人人爽 | a级大片免费看| 欧美日韩黄网站| 日韩一区二区三区在线观看| 91大神免费观看| 国产精品久久久久久久久久白浆| 亚洲成人黄色在线观看| 波多野结衣影院| 少妇一区二区视频| 正在播放亚洲1区| 91视频青青草| 午夜精品久久| av黄色在线看| 精品久久中文| 色悠悠久久久久| 性欧美videos| 最新成人av网站| 热久久这里只有| 中文字幕乱码一区二区| 理论电影国产精品| 产国精品偷在线| 日本一二三区在线视频| 国产精品久久二区二区| 日韩a级黄色片| 日韩深夜视频| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 亚洲三级视频网站| 亚洲大奶少妇| 亚洲伦理中文字幕| 欧美丰满熟妇bbbbbb| 亚洲精品1234| 成人观看高清在线观看免费| 神马午夜在线观看| 亚洲国产精品v| 免费av手机在线观看| 成人啊v在线| 欧美v国产在线一区二区三区| 亚洲黄色在线网站| 香蕉综合视频| 国产成人精品av| av免费观看网址| 久久久99久久| 欧美久久在线观看| 欧美日韩伦理一区二区| 精品国产伦一区二区三区观看体验| 少妇毛片一区二区三区| 日韩免费视频| 欧美一级在线亚洲天堂| av网站免费大全| 久久精品免费在线观看| 又大又硬又爽免费视频| 国产伊人久久| 亚洲欧美一区二区三区久久| 亚洲熟女www一区二区三区| 日韩二区在线观看| 国产日韩久久| 青春草视频在线| 欧美日韩一区二区三区高清 | 久久精品视频网站| 男人的天堂av网站| 99国产一区二区三精品乱码| 91精品国产吴梦梦| 精品三区视频| 亚洲毛片在线观看.| 久久久久久福利| 国产成人在线看| 中文字幕免费高| 成人全视频免费观看在线看| 亚洲人午夜精品| 欧美日韩综合在线观看| 成人av在线资源网| 欧美 国产 精品| 在线播放成人| 久久视频在线观看免费| 岳乳丰满一区二区三区| 国产欧美日本一区视频| 成年人网站大全| 综合亚洲自拍| 51久久精品夜色国产麻豆| 日本美女一级片| 亚欧色一区w666天堂| 日本精品一二三区| 欧美午夜影院| 国产高清在线一区| 牛牛在线精品视频| 精品日产卡一卡二卡麻豆| 美女视频黄免费| 懂色av一区二区三区蜜臀| 日本精品福利视频| 97久久超碰| 91高清免费在线观看| 四虎影院在线域名免费观看| 欧美视频在线免费看| 全黄一级裸体片| 日韩电影在线观看电影| 亚洲国内在线| 国产精品一区二区美女视频免费看 | 日本美女在线中文版| 欧美精品一二三区| 91视频免费看片| 精品一区免费av| 热久久最新地址| 国产精品超碰| 国产99久久精品一区二区 夜夜躁日日躁 | 希岛爱理一区二区三区av高清| 亚洲人成网站999久久久综合| 蜜臀精品一区二区三区| 国产女同互慰高潮91漫画| 日本美女视频一区| 欧美精品九九| 久久久影院一区二区三区| 日韩欧美另类一区二区| 少妇高潮久久77777| 成人av无码一区二区三区| 亚洲成人av电影在线| 在线观看日本中文字幕| 国产在线乱码一区二区三区| 亚洲精品少妇一区二区| 精品素人av| 国产精品成人品| av黄在线观看| 亚洲欧美国产精品久久久久久久| 最新中文字幕免费| 一区二区三区精品在线| 国产又粗又猛又爽视频| 国产乱一区二区| www.浪潮av.com| 99久久久久久中文字幕一区| 成人做爰66片免费看网站| 国产精品专区免费| 久久在线视频在线| 日本aaa在线观看| 日韩女优av电影| 日韩欧美在线观看免费| 亚洲人成亚洲人成在线观看图片| 性色av蜜臀av浪潮av老女人| 蜜臀99久久精品久久久久久软件| 国产黄色激情视频| 日韩精品首页| 精品国产乱码久久久久软件 | 欧美成人r级一区二区三区| 亚洲第一在线播放| 亚洲女同一区二区| 一级片手机在线观看| 国产69精品久久久久毛片| 999精彩视频| 中文久久精品| 国产免费xxx| 欧洲杯什么时候开赛| 韩国一区二区三区美女美女秀| 亚洲一区二区三区久久久| 日韩av理论片| av在线网页| 久色乳综合思思在线视频| 国产精品久久一区二区三区不卡| 亚洲成人网久久久| 国产精品久久久国产盗摄| 日本乱码高清不卡字幕| www.日本精品| 亚洲一区二区av电影| 四虎884aa成人精品| 日本一区二区三区dvd视频在线| 亚洲精品女人久久久| 成人免费毛片片v| 中文字幕第22页| 六月丁香综合在线视频| 久草综合在线观看| 亚洲人成免费| 国产九色porny| 国产精品v日韩精品v欧美精品网站 | 国产日韩欧美在线视频观看| 黑人精品一区| 欧美亚洲国产日韩2020| 97蜜桃久久| 久久久久久国产三级电影| 影音先锋中文在线视频| 超碰精品一区二区三区乱码| 好了av在线| 久久影视电视剧免费网站| 麻豆视频免费在线观看| 中文字幕欧美精品在线| 92国产在线视频| 最近2019年手机中文字幕| av播放在线| 日韩一区二区av| 麻豆视频在线观看免费| 久久成人这里只有精品| 快射av在线播放一区| 久久影院免费观看| 91香蕉在线观看| 欧美日韩国产成人在线| 色www永久免费视频首页在线| 欧美极品美女视频网站在线观看免费 | 免费看久久久| 久久精品aaaaaa毛片| 伊人成综合网yiren22| 四虎一区二区| 亚洲va在线| 免费视频爱爱太爽了| 国产日韩高清一区二区三区在线| 18禁免费无码无遮挡不卡网站| 亚洲一区区二区| 99热手机在线| 国产一区欧美一区| 国产十八熟妇av成人一区| 97久久精品人人做人人爽50路| 这里只有久久精品| 国产欧美日韩卡一| 欧美三级日本三级| 亚洲成人在线免费| 日韩电影在线观看一区二区| 欧美蜜桃一区二区三区| www.久久伊人| 亚洲毛片在线免费观看| 天堂аⅴ在线地址8| 欧美成人精品在线| 欧美办公室脚交xxxx| 国产精品久久久久久一区二区| 日韩免费大片| 国产精品午夜av在线| 日本大胆欧美| 4444亚洲人成无码网在线观看| 久久av一区| 国产一级片中文字幕| 91蜜桃免费观看视频| 懂色av蜜臀av粉嫩av永久| 亚洲第一av色| 综合久久中文字幕| 精品福利一二区| eeuss影院www在线观看| 久久久久久97| 亚洲色图图片| 久久综合精品一区| 亚洲va在线| 欧美日韩亚洲一二三| 国产一区二区三区四区五区美女| 极品白嫩丰满美女无套| 综合久久一区二区三区| 亚洲另类在线观看| 欧美一区二区久久久| 国产视频二区在线观看| 欧美精品精品精品精品免费| 免费污视频在线一区| 国产在线一区二区三区欧美| 久久久久久美女精品 | 一区二区三区四区五区精品 | 亚洲人吸女人奶水| 亚洲 欧美 日韩 在线| 欧美xxx久久| 国产秀色在线www免费观看| 欧洲中文字幕国产精品| 欧美1区2区3| 亚洲午夜精品一区二区| 西西裸体人体做爰大胆久久久| 九色91porny| 国产精品久久久久久久久晋中| 天堂中文在线网| 亚洲国产精品电影| 在线视频国产区| 成人免费大片黄在线播放| 日韩国产在线| 激情 小说 亚洲 图片: 伦| 久久午夜电影网| 日本一级淫片色费放| 日韩欧美国产一区在线观看| 色多多视频在线观看| 国产精品欧美久久久| 国产毛片一区二区三区| 国产在线青青草| 91在线视频网址| 可以在线观看av的网站| 亚洲а∨天堂久久精品9966| 手机在线免费观看av| 91麻豆精品秘密入口| 欧美成人午夜| 免费人成视频在线播放| 亚洲免费大片在线观看| 国产乱码精品一区二区| 久久精品视频网站| 亚洲青青一区| 黑人巨大国产9丨视频| 精品一区二区在线看| 久久人妻无码aⅴ毛片a片app | 亚洲一区精品在线| 国产成人av免费看| 色综合久久悠悠| 91成人入口| 国产精品久久久久9999爆乳| 不卡一区二区三区四区| 国产福利拍拍拍| 国产视频精品一区二区三区| 欧美人与性动交xxⅹxx| 色噜噜色狠狠狠狠狠综合色一| 美女视频免费一区| 成年人二级毛片| 欧美r级电影在线观看| free性m.freesex欧美| 精品亚洲第一| 日韩国产欧美在线视频| 国产高清视频免费在线观看| 日韩三级高清在线| 91福利在线尤物| 欧美自拍资源在线| 美女在线视频一区| 在线免费日韩av| 精品盗摄一区二区三区| 大胆人体一区| 亚洲天堂av免费在线观看| 国产a久久麻豆| 91精品国产高清一区二区三密臀| 国产亚洲一区二区精品| 欧美高清一级片| 亚洲人成无码网站久久99热国产| 久久久夜色精品亚洲| 一级特黄aaaaaa大片| 久久久亚洲国产| 国产一区二区三区不卡视频网站| 亚洲欧美视频二区| 亚洲一区免费观看| 国产高清视频免费最新在线| 91老司机在线| 国产精品久久777777毛茸茸| 国产又粗又长又硬| 亚洲成人动漫在线播放| a屁视频一区二区三区四区| 91免费网站视频| 91蜜桃在线免费视频| 国产美女永久免费| 日本高清视频一区| 亚洲深深色噜噜狠狠爱网站| 精品人妻少妇嫩草av无码| 911精品产国品一二三产区| а√在线中文在线新版| 一区二区免费在线观看| 91免费视频大全| 99久久免费国产精精品| 国产v综合ⅴ日韩v欧美大片 |