<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国内免费在线视频| 免费成人黄色大片| 99精品免费视频| 2020天堂在线亚洲精品专区| 四虎国产精品免费久久影院| 免费观看91视频| 亚洲av色香蕉一区二区三区| 亚洲国产精品无码久久SM| 成人毛片免费观看视频| 中国国语毛片免费观看视频| 国产亚洲精品VA片在线播放| 亚洲精品亚洲人成在线观看| 免费无码又爽又刺激聊天APP| 一个人晚上在线观看的免费视频| 亚洲欧洲中文日产| 亚洲性日韩精品一区二区三区 | 亚洲乱亚洲乱妇无码麻豆| AV无码免费永久在线观看| 一级a性色生活片久久无少妇一级婬片免费放 | 国产三级在线免费| 久久精品国产亚洲AV未满十八| 久久久久亚洲AV片无码| 日本一区免费电影| 91免费国产自产地址入| 男女一边桶一边摸一边脱视频免费| 亚洲一级毛片免观看| 久久亚洲国产精品五月天| 免费国产怡红院在线观看| 久草视频免费在线| 中文字幕日本人妻久久久免费| 精品久久久久久亚洲综合网| 亚洲国产成+人+综合| 久久精品亚洲综合专区| 亚洲成a人片在线观看国产| 成年人网站在线免费观看| 8x8×在线永久免费视频| 免费网站观看WWW在线观看| 免费大片黄在线观看| 亚洲精品人成网线在线播放va| 亚洲最大在线观看|