亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Java > 正文

JAVA注解應用

2019-11-06 06:32:46
字體:
來源:轉載
供稿:網友
博客微博相冊收藏留言關于我
 

java注解應用實例 - Annotation, 自定義注解, 注解類規則

博客分類: javaJava 注解Annotationjava注解應用實例java反射 

本文介紹了java的自定義注解及注解類編寫的規則, 并通過實例來說明下如何使用java的注解. 實例演示了注解在類,構造方法,方法和字段的使用. 可以從這里下載到完成的工程代碼: http://dl.iteye.com/topics/download/f74972df-234f-30c9-aadd-ca2ed1376bc2

自定義注解類編寫的一些規則:

1. Annotation型定義為@interface, 所有的Annotation會自動繼承java.lang.Annotation這一接口,并且不能再去繼承別的類或是接口.

2. 參數成員只能用public或默認(default)這兩個訪問權修飾

3. 參數成員只能用基本類型byte,short,char,int,long,float,double,boolean八種基本數據類型和String、Enum、Class、annotations等數據類型,以及這一些類型的數組.

4. 要獲取類方法和字段的注解信息,必須通過Java的反射技術來獲取 Annotation對象,因為你除此之外沒有別的獲取注解對象的方法

5. 注解也可以沒有定義成員, 不過這樣注解就沒啥用了

自定義注解類時, 可以指定目標 (類、方法、字段, 構造函數等) , 注解的生命周期(運行時,class文件或者源碼中有效), 是否將注解包含在javadoc中及是否允許子類繼承父類中的注解, 具體如下: 

1. @Target 表示該注解目標,可能的 ElemenetType 參數包括:

ElemenetType.CONSTRUCTOR 構造器聲明ElemenetType.FIELD 域聲明(包括 enum 實例) ElemenetType.LOCAL_VARIABLE 局部變量聲明 ElemenetType.METHOD 方法聲明 ElemenetType.PACKAGE 包聲明 ElemenetType.PARAMETER 參數聲明 ElemenetType.TYPE 類,接口(包括注解類型)或enum聲明

2. @Retention 表示該注解的生命周期,可選的 RetentionPolicy 參數包括

RetentionPolicy.SOURCE 注解將被編譯器丟棄 RetentionPolicy.CLASS 注解在class文件中可用,但會被VM丟棄 RetentionPolicy.RUNTIME VM將在運行期也保留注釋,因此可以通過反射機制讀取注解的信息

3. @Documented 指示將此注解包含在 javadoc 中

4.  @Inherited 指示允許子類繼承父類中的注解

好, 該介紹的介紹了, 看下自定義的注解應用實例:

1. 首先看下定義的注解類:

類注解定義, MyClassAnnotation.java:

[java] view plain copypackage  com.ross.annotation;  import  java.lang.annotation.*;  /**   * Author: Jiangtao He; Email: ross.jiangtao.he@Gmail.com   * Date: 2012-1-29   * Since: MyJavaExpert v1.0   * Description: class annotation   */   @Retention (RetentionPolicy.RUNTIME)   @Target (ElementType.TYPE)   public   @interface  MyClassAnnotation   {      String uri();      String desc();  }  默認構造方法注解定義,MyConstructorAnnotation.java: [java] view plain copypackage  com.ross.annotation;  import  java.lang.annotation.ElementType;  import  java.lang.annotation.Retention;  import  java.lang.annotation.RetentionPolicy;  import  java.lang.annotation.Target;  /**   * Author: Jiangtao He; Email: ross.jiangtao.he@gmail.com   * Date: 2012-1-29   * Since: MyJavaExpert v1.0   * Description: Constructor annotation   */   @Retention (RetentionPolicy.RUNTIME)   @Target (ElementType.CONSTRUCTOR)   public   @interface  MyConstructorAnnotation   {      String uri();      String desc();  }  方法注解定義,MyMethodAnnotation.java:[java] view plain copypackage  com.ross.annotation;  import  java.lang.annotation.ElementType;  import  java.lang.annotation.Retention;  import  java.lang.annotation.RetentionPolicy;  import  java.lang.annotation.Target;  /**   * Author: Jiangtao He; Email: ross.jiangtao.he@gmail.com   * Date: 2012-1-29   * Since: MyJavaExpert v1.0   * Description: method annotation   */   @Retention (RetentionPolicy.RUNTIME)   @Target (ElementType.METHOD)   public   @interface  MyMethodAnnotation   {      String uri();      String desc();  }  字段注解定義, MyFieldAnnotation.java:[java] view plain copypackage  com.ross.annotation;  import  java.lang.annotation.ElementType;  import  java.lang.annotation.Retention;  import  java.lang.annotation.RetentionPolicy;  import  java.lang.annotation.Target;  /**   * Author: Jiangtao He; Email: ross.jiangtao.he@gmail.com   * Date: 2012-1-29   * Since: MyJavaExpert v1.0   * Description: field annotation   */   @Retention (RetentionPolicy.RUNTIME)   @Target (ElementType.FIELD)   public   @interface  MyFieldAnnotation   {      String uri();      String desc();  }  2. 再看下我們注解的應用和測試:

在類上面使用了MyClassAnnotation注解, 默認構造方法上使用了MyConstructorAnnotation注解,  自定義方法上使用了MyMethodAnnotation注解, 自定義字段上使用了MyFieldAnnotation注解, 在Mail函數中則實現了訪問這些注解,并打印注解信息.

MySample.java:

[java] view plain copypackage  com.ross.annotation;  import  java.lang.reflect.*;  /**   * Author: Jiangtao He; Email: ross.jiangtao.he@gmail.com   * Date: 2012-1-29   * Since: MyJavaExpert v1.0   * Description: This class is used to show how to use the annotation of each level   */   @MyClassAnnotation (uri =  "com.ross.MySample" , desc =  "The class name" )  public   class  MySample  {      @MyFieldAnnotation (uri =  "com.ross.MySample#id" , desc =  "The class field" )      public  String id;        /**       * Description: default constructor       */       @MyConstructorAnnotation (uri =  "com.ross.MySample#MySample" , desc =  "The default constuctor" )      public  MySample()      {      }        /**       * Description: normal method       */       @MyMethodAnnotation (uri =  "com.ross.MySample#setId" , desc =  "The class method")      public   void  setId(String id)      {          this .id = id;      }        /**       * Description: MyAnnotation test       * @throws NoSuchMethodException        * @throws SecurityException        * @throws NoSuchFieldException        */       public   static   void  main(String[] args)  throws  SecurityException,              NoSuchMethodException, NoSuchFieldException      {          MySample oMySample = new  MySample();          // get class annotation           MyClassAnnotation oMyAnnotation = MySample.class                   .getAnnotation(MyClassAnnotation.class );          System.out.

控制臺打印結果:

[plain] view plain copyClass's uri: com.ross.MySample; desc: The class name  Constructor's uri: com.ross.MySample#MySample; desc: The default constuctor  Method's uri: com.ross.MySample#setId; desc: The class method  Field's uri: com.ross.MySample#id; desc: The class field  

至此本實例就完成了, 其實就是抓住兩點一個是定義注解類,另外一個是如何訪問注解, 就算是學會了.

注: 轉載請注明出處: http://hejiangtao.iteye.com ,  用于商業得給我分成大笑

MyJavaExpert_V1.0-java注解應用實例.rar (10.1 KB)下載次數: 2404 頂3 踩分享到:  Java Compiler 應用實例 | Java 序列化的高級認識--序列化反序列化, ...2012-01-29 21:35瀏覽 18605評論(1)分類:編程語言相關推薦
參考知識庫
人工智能知識庫10736  關注 | 521  收錄Python知識庫20226  關注 | 1334  收錄Java SE知識庫23461  關注 | 468  收錄微信開發知識庫19036  關注 | 776  收錄
評論
1 樓 beiyeren 2013-03-02  寫的不錯啊
發表評論

 您還沒有登錄,請您登錄后再發表評論

hejiangtao瀏覽: 75596 次性別: Icon_minigender_1來自: 杭州
最近訪客 更多訪客>>
wtxczwtxczsnowrainbow東林碣石hello2017
文章分類
全部博客 (13)java (12)網絡 (1)網絡編程 (1)
社區版塊
我的資訊 (0)我的論壇 (0)我的問答 (0)
存檔分類
2012-10 (2)2012-03 (1)2012-02 (1)更多存檔...
最新評論
硯臺觀月: 你好,例子還有嗎,我想要份學習看下。提供的鏈接找不到了。java網絡編程之Http多線程下載應用實例xianghanscce: ...java泛型應用實例 - 自定義泛型類,方法yhx1231: ...Java反射應用實例beiyeren: 寫的不錯啊java注解應用實例 - Annotation, 自定義注解, 注解類規則xuanxuan.good: 請問你是如何測試的.謝謝java反射的性能問題 (轉)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品一二三在线| 欧美视频在线免费| 青青草99啪国产免费| 久久精品国产精品亚洲| 久久影视电视剧凤归四时歌| 伦伦影院午夜日韩欧美限制| 国产日本欧美一区二区三区| 久久精品国产99国产精品澳门| 精品久久久久人成| 日韩免费观看视频| 日韩av影片在线观看| 欧美激情一区二区三区久久久| 欧美日韩美女在线| 91精品国产九九九久久久亚洲| 成人激情视频在线播放| 欧美日韩性视频在线| 91豆花精品一区| 国产精品久久久久久av福利软件| 久久99热精品| 91久久久精品| 中文字幕欧美日韩| 97在线免费视频| 亚洲综合中文字幕在线观看| 久久中文字幕在线视频| 国产精品久在线观看| 久久中文字幕一区| 国产精品大陆在线观看| 日韩中文字幕亚洲| 国产日韩精品电影| 九九久久久久99精品| 91久久国产综合久久91精品网站| 亚洲国产日韩精品在线| 日韩精品在线看| 亚洲精品小视频在线观看| 国产精品嫩草影院久久久| 欧美日韩亚洲一区二区| 日韩国产精品亚洲а∨天堂免| www.国产精品一二区| 亚洲综合色激情五月| 国产欧美va欧美va香蕉在线| 中文字幕亚洲欧美| 夜夜狂射影院欧美极品| 国产精品日韩在线| 久久香蕉国产线看观看av| 国内精品久久久| 日韩欧美在线免费| 亚洲精品网址在线观看| 亚洲综合日韩中文字幕v在线| 亚洲国产古装精品网站| 国产日韩在线看| 国产成人精品在线播放| 成人精品福利视频| 97精品国产97久久久久久免费| 国产香蕉一区二区三区在线视频| 成人免费直播live| 久久69精品久久久久久国产越南| 国产精品美女久久久久av超清| 日韩av片免费在线观看| 欧美精品在线观看91| 欧美中文字幕在线| 中文国产亚洲喷潮| 亚洲国产美女久久久久| 欧美日韩一二三四五区| 国产成人精品久久久| 国产精品久久久久国产a级| 亚洲丝袜在线视频| 国产亚洲免费的视频看| 精品亚洲一区二区三区| 欧美日韩第一视频| 精品女同一区二区三区在线播放| 欧美黄色www| 一级做a爰片久久毛片美女图片| 国产精品夜色7777狼人| 久久久久五月天| 国产视频在线观看一区二区| 91精品国产沙发| 日韩女在线观看| 精品无人区太爽高潮在线播放| 亚洲肉体裸体xxxx137| 91国产高清在线| 国产精品美女久久久久久免费| 成人久久久久久| 国产精品欧美一区二区三区奶水| 欧美与欧洲交xxxx免费观看| 久久久久久高潮国产精品视| 欧美激情久久久久| 久久久久久久久91| 国产成人综合一区二区三区| 亚洲国产成人一区| 欧美大奶子在线| 国产亚洲aⅴaaaaaa毛片| 欧美日韩不卡合集视频| 国产有码一区二区| 激情成人中文字幕| 亚洲精品中文字幕有码专区| 欧美一级黑人aaaaaaa做受| 97在线视频免费播放| 欧美色道久久88综合亚洲精品| 神马久久久久久| 亚州精品天堂中文字幕| 欧美多人乱p欧美4p久久| 久久99精品久久久久久琪琪| 2019亚洲男人天堂| 国产精品久久久久久久天堂| 俺也去精品视频在线观看| 97人洗澡人人免费公开视频碰碰碰| 国产视频观看一区| 91av视频在线观看| 久久777国产线看观看精品| 亚洲国产精品电影| 国外成人在线播放| 91在线中文字幕| 国产精品夜色7777狼人| 国产欧美精品一区二区三区-老狼| 欧美激情在线有限公司| 亚洲最大成人网色| 亚洲精品久久7777777| 青青a在线精品免费观看| 国产成+人+综合+亚洲欧洲| 成人激情在线观看| 亚洲精品美女久久久| 久久综合伊人77777尤物| 国产精品黄色影片导航在线观看| 欧美精品在线第一页| 亚洲欧美在线磁力| 91在线高清视频| 国产精品69久久| 日韩欧美亚洲国产一区| 热re99久久精品国产66热| 日本在线精品视频| 91精品国产91久久久久久| 中文日韩电影网站| 欧美高清无遮挡| 亚洲专区在线视频| 国产精品视频色| 78m国产成人精品视频| 日韩视频―中文字幕| 懂色av中文一区二区三区天美| 国产精品久久久久久av福利软件| 欧美精品videofree1080p| 亚洲天堂一区二区三区| 欧美猛交ⅹxxx乱大交视频| 久久婷婷国产麻豆91天堂| 中文字幕精品一区二区精品| 国外色69视频在线观看| 欧美性jizz18性欧美| 伊人久久免费视频| 日韩av中文字幕在线| 亚洲午夜未满十八勿入免费观看全集| 日韩在线欧美在线| 欧洲亚洲妇女av| 欧美精品福利在线| 欧美性高潮床叫视频| 狠狠色狠狠色综合日日小说| 欧美一区二区三区免费视| 精品久久中文字幕久久av| 日本成人在线视频网址| 丝袜情趣国产精品| 国产精品免费久久久久久| 全亚洲最色的网站在线观看| 精品国产美女在线| 永久免费毛片在线播放不卡| 亚洲国产成人久久| 8090成年在线看片午夜|