氟塑料離心泵www.buybeng.com

          jquery教程http://www.software8.co/wzjs/jquery/

          java自定義注解接口

          java注解是附加在代碼中的一些元信息,用于一些工具在編譯、運行時進行解析和使用,起到說明、配置的功能。
          注解不會也不能影響代碼的實際邏輯,僅僅起到輔助性的作用。包含在 java.lang.annotation 包中。 
          1、元注解 
          元注解是指注解的注解。包括  @Retention @Target @Document @Inherited四種。 
          1.1、@Retention: 定義注解的保留策略 
          Java代碼
          1. @Retention(RetentionPolicy.SOURCE) //注解僅存在于源碼中,在class字節碼文件中不包含  
          2. @Retention(RetentionPolicy.CLASS)  //默認的保留策略,注解會在class字節碼文件中存在,但運行時無法獲得,  
          3. @Retention(RetentionPolicy.RUNTIME)//注解會在class字節碼文件中存在,在運行時可以通過反射獲取到  
          1.2、@Target:定義注解的作用目標 
          Java代碼
          1. @Target(ElementType.TYPE)   //接口、類、枚舉、注解  
          2. @Target(ElementType.FIELD) //字段、枚舉的常量  
          3. @Target(ElementType.METHOD) //方法  
          4. @Target(ElementType.PARAMETER) //方法參數  
          5. @Target(ElementType.CONSTRUCTOR)  //構造函數  
          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 = " 小明 ")//www.heatpress123.net
          4.     public void sayHello(String name) {  
          5.         System.out.println(name + "say hello world!");  
          6.     }  
          7. }  
          4、解析注解 
             java的反射機制可以幫助,得到注解,代碼如下: 
          Java代碼 
          1. public class AnnTest {  
          2. public void parseMethod(Class<?> clazz) {  
          3.         Object obj;  
          4.        try {  
          5.             // 通過默認構造方法創建一個新的對象  
          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 10:03 你爸是李剛 閱讀(157) 評論(0)  編輯  收藏


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


          網站導航:
           
          <2012年11月>
          28293031123
          45678910
          11121314151617
          18192021222324
          2526272829301
          2345678

          導航

          統計

          常用鏈接

          留言簿

          隨筆檔案

          文章檔案

          技術網站

          行業網站

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          站長網 氟塑料離心泵 注塑機 液晶廣告機
          主站蜘蛛池模板: 屏南县| 仲巴县| 奈曼旗| 嘉黎县| 会东县| 长泰县| 察雅县| 乐业县| 象山县| 贵州省| 尖扎县| 宁波市| 益阳市| 宁明县| 阿瓦提县| 双鸭山市| 淅川县| 昌都县| 万全县| 五寨县| 怀仁县| 沁源县| 满洲里市| 威宁| 赫章县| 金华市| 塘沽区| 广元市| 象州县| 萝北县| 凤翔县| 贵溪市| 云林县| 盐源县| 河曲县| 周口市| 台北县| 临泉县| 宁明县| 克拉玛依市| 南华县|