<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    jialisoftw

    java自定義注解接口

    java注解是附加在代碼中的一些元信息,用于一些工具在編譯、運行時進行解析和使用,起到說明、配置的功能。
    注解不會也不能影響代碼的實際邏輯,僅僅起到輔助性的作用。包含在 java.lang.annotation 包中。 
    1、元注解 
    元注解是指注解的注解。包括  @Retention @Target @Document @Inherited四種。 
    1.1、@Retention: 定義注解的保留策略 
    Java代碼
    1. @Retention(RetentionPolicy.SOURCE) //注解僅存在于源碼中,在class字節(jié)碼文件中不包含  
    2. @Retention(RetentionPolicy.CLASS)  //默認的保留策略,注解會在class字節(jié)碼文件中存在,但運行時無法獲得,  
    3. @Retention(RetentionPolicy.RUNTIME)//注解會在class字節(jié)碼文件中存在,在運行時可以通過反射獲取到  
    1.2、@Target:定義注解的作用目標 
    Java代碼
    1. @Target(ElementType.TYPE)   //接口、類、枚舉、注解  
    2. @Target(ElementType.FIELD) //字段、枚舉的常量  
    3. @Target(ElementType.METHOD) //方法  
    4. @Target(ElementType.PARAMETER) //方法參數(shù)  
    5. @Target(ElementType.CONSTRUCTOR)  //構造函數(shù)  
    6. @Target(ElementType.LOCAL_VARIABLE)//局部變量  
    7. @Target(ElementType.ANNOTATION_TYPE)//注解  
    8. @Target(ElementType.PACKAGE) ///包  
    elementType 可以有多個,一個注解可以為類的,方法的,字段的等等 
    1.3、@Document:說明該注解將被包含在javadoc中 
    1.4、@Inherited:說明子類可以繼承父類中的該注解 
    下面是自定義注解的一個例子 
    2、注解的自定義 
    Java代碼
    1. @Retention(RetentionPolicy.RUNTIME)  
    2. @Target(ElementType.METHOD)  
    3. public @interface HelloWorld {  
    4.     public String name() default "";  
    5. }  
    3、注解的使用,測試類 
    Java代碼
    1. public class SayHello {  
    2.       
    3.     @HelloWorld(name = " 小明 ")  
    4.     public void sayHello(String name) {  
    5.         System.out.println(name + "say hello world!");  
    6.     }//www.heatpress123.net 
    7. }  
    4、解析注解 
       java的反射機制可以幫助,得到注解,代碼如下: 
    Java代碼 
    1. public class AnnTest {  
    2. public void parseMethod(Class<?> clazz) {  
    3.         Object obj;  
    4.        try {  
    5.             // 通過默認構造方法創(chuàng)建一個新的對象  
    6.             obj = clazz.getConstructor(new Class[] {}).newInstance(  
    7.                     new Object[] {});  
    8.             for (Method method : clazz.getDeclaredMethods()) {  
    9.                 HelloWorld say = method.getAnnotation(HelloWorld.class);  
    10.                 String name = "";  
    11.                 if (say != null) {  
    12.                     name = say.name();  
    13.                     System.out.println(name);  
    14.                     method.invoke(obj, name);  
    15.                 }  
    16.             }  
    17.         } catch (Exception e) {  
    18.             e.printStackTrace();  
    19.         }  
    20.     }  
    21.     public static void main(String[] args) {  
    22.         AnnTest t = new AnnTest();  
    23.         t.parseMethod(SayHello.class);  
    24.     }  
    25. }  
    26.  原文:http://www.software8.co/wzjs/java/1420.html

    posted on 2012-11-23 15:48 飛豬一號 閱讀(1164) 評論(1)  編輯  收藏

    評論

    # re: java自定義注解接口[未登錄] 2012-11-23 20:52 大頭

    學習了。
      回復  更多評論   


    只有注冊用戶登錄后才能發(fā)表評論。


    網站導航:
     

    導航

    <2012年11月>
    28293031123
    45678910
    11121314151617
    18192021222324
    2526272829301
    2345678

    統(tǒng)計

    常用鏈接

    留言簿

    隨筆檔案

    友情鏈接

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 在线观看免费人成视频色9| 免费无码一区二区三区蜜桃| 91九色视频无限观看免费| 中文字幕精品亚洲无线码二区| 免费毛片毛片网址| 亚洲高清成人一区二区三区| 日本系列1页亚洲系列| 国产免费av片在线无码免费看| 亚洲大码熟女在线观看| 国产精品va无码免费麻豆 | 亚洲自偷精品视频自拍| 久久精品国产影库免费看| 精品国产_亚洲人成在线高清 | 久久免费动漫品精老司机| 九月丁香婷婷亚洲综合色| 免费播放在线日本感人片| 亚洲av色福利天堂| 免费成人激情视频| 国产成人亚洲综合网站不卡| 日本一道高清不卡免费| 偷自拍亚洲视频在线观看99| 亚洲欧洲久久久精品| 免费国产午夜高清在线视频| 精品亚洲成a人片在线观看| 国产91色综合久久免费| 亚洲精品乱码久久久久久蜜桃图片| 国产在线观看免费不卡| 中文字幕在线免费观看视频| 久久亚洲AV成人无码电影| 成全影视免费观看大全二| 特黄特色大片免费| 亚洲国产高清视频| 成年男女男精品免费视频网站| 黄色网址在线免费观看| 亚洲av色影在线| 麻豆国产VA免费精品高清在线| 免费无码国产V片在线观看| 图图资源网亚洲综合网站| 成人免费男女视频网站慢动作| 一个人看的免费视频www在线高清动漫 | 久草视频免费在线|