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

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

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

    jialisoftw

    java自定義注解接口

    java注解是附加在代碼中的一些元信息,用于一些工具在編譯、運(yùn)行時(shí)進(jìn)行解析和使用,起到說(shuō)明、配置的功能。
    注解不會(huì)也不能影響代碼的實(shí)際邏輯,僅僅起到輔助性的作用。包含在 java.lang.annotation 包中。 
    1、元注解 
    元注解是指注解的注解。包括  @Retention @Target @Document @Inherited四種。 
    1.1、@Retention: 定義注解的保留策略 
    Java代碼
    1. @Retention(RetentionPolicy.SOURCE) //注解僅存在于源碼中,在class字節(jié)碼文件中不包含  
    2. @Retention(RetentionPolicy.CLASS)  //默認(rèn)的保留策略,注解會(huì)在class字節(jié)碼文件中存在,但運(yùn)行時(shí)無(wú)法獲得,  
    3. @Retention(RetentionPolicy.RUNTIME)//注解會(huì)在class字節(jié)碼文件中存在,在運(yùn)行時(shí)可以通過(guò)反射獲取到  
    1.2、@Target:定義注解的作用目標(biāo) 
    Java代碼
    1. @Target(ElementType.TYPE)   //接口、類、枚舉、注解  
    2. @Target(ElementType.FIELD) //字段、枚舉的常量  
    3. @Target(ElementType.METHOD) //方法  
    4. @Target(ElementType.PARAMETER) //方法參數(shù)  
    5. @Target(ElementType.CONSTRUCTOR)  //構(gòu)造函數(shù)  
    6. @Target(ElementType.LOCAL_VARIABLE)//局部變量  
    7. @Target(ElementType.ANNOTATION_TYPE)//注解  
    8. @Target(ElementType.PACKAGE) ///包  
    elementType 可以有多個(gè),一個(gè)注解可以為類的,方法的,字段的等等 
    1.3、@Document:說(shuō)明該注解將被包含在javadoc中 
    1.4、@Inherited:說(shuō)明子類可以繼承父類中的該注解 
    下面是自定義注解的一個(gè)例子 
    2、注解的自定義 
    Java代碼
    1. @Retention(RetentionPolicy.RUNTIME)  
    2. @Target(ElementType.METHOD)  
    3. public @interface HelloWorld {  
    4.     public String name() default "";  
    5. }  
    3、注解的使用,測(cè)試類 
    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的反射機(jī)制可以幫助,得到注解,代碼如下: 
    Java代碼 
    1. public class AnnTest {  
    2. public void parseMethod(Class<?> clazz) {  
    3.         Object obj;  
    4.        try {  
    5.             // 通過(guò)默認(rèn)構(gòu)造方法創(chuàng)建一個(gè)新的對(duì)象  
    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 飛豬一號(hào) 閱讀(1164) 評(píng)論(1)  編輯  收藏

    評(píng)論

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

    學(xué)習(xí)了。
      回復(fù)  更多評(píng)論   


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


    網(wǎng)站導(dǎo)航:
     

    導(dǎo)航

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

    統(tǒng)計(jì)

    常用鏈接

    留言簿

    隨筆檔案

    友情鏈接

    搜索

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 中文字幕在亚洲第一在线| 久久久久亚洲精品无码系列| 高清免费久久午夜精品| 亚洲综合另类小说色区| 91免费人成网站在线观看18| 亚洲精华国产精华精华液好用 | 真实国产乱子伦精品免费| 亚洲中文无码亚洲人成影院| 在线亚洲午夜理论AV大片| 国产一卡二卡四卡免费| 一级一级毛片免费播放| 亚洲美女人黄网成人女| 日韩精品电影一区亚洲| xxxxx免费视频| 精精国产www视频在线观看免费| 亚洲女人影院想要爱| vvvv99日韩精品亚洲| 四虎精品视频在线永久免费观看| 成人免费网站视频www| 亚洲综合一区二区| 亚洲国产精品狼友中文久久久| xxxx日本免费| 两个人看的www免费视频中文| 亚洲欧美日韩一区二区三区| 久久精品亚洲综合一品| 亚洲第一页日韩专区| 91免费国产在线观看| 在线人成免费视频69国产| 日本高清不卡中文字幕免费| 中文字幕亚洲精品无码| 亚洲毛片在线观看| 成人午夜亚洲精品无码网站| 手机看片久久国产免费| 国产国产人免费视频成69堂| av永久免费网站在线观看| 免费在线观看一区| jizzjizz亚洲日本少妇| 亚洲精品无码mⅴ在线观看| 亚洲精品国产手机| 亚洲成人免费在线| 亚洲成AV人片在线观看WWW|