杰點

          hello java

          注解

          注解 Annotation

          一個注解就是一個類

          @SuppressWarnings("deprecation") 源文件階段

          @Override  重寫    源文件階段

          @Deprecated 過時   RUNTIME階段

           

          注解類
          @interface A{
          }

          應用了“注解類”的類
          @A
          class B{
          }

          注解反射
          class C{
          B.class.isAnnotationPresent(A.class)

          A a=B.class.getAnnotation(A.class)
          }


          @Retention元注解
          RetetionPolicy.SOURCE  對應源文件
          RetetionPolicy.CLASS   對應class文件
          RetetionPolicy.RUNTIME 內存中的字節碼

          RetetionPolicy是枚舉,
          只包含 SOURCE,CLASS,RUNTIME三個元素

           1 //注解類
           2 import java.lang.annotation.ElementType;
           3 import java.lang.annotation.Retention;
           4 import java.lang.annotation.RetentionPolicy;
           5 import java.lang.annotation.Target;
           6 
           7 @Retention(RetentionPolicy.RUNTIME)
           8 @Target({ElementType.METHOD,ElementType.TYPE})  
           9 //Target 參數 一個可以,兩個以上 參數為數組
          10 //注解的注解目標({方法,類})  描述class,interface enum 的父類都是TYPE
          11 public @interface MyAnnotation {
          12     //為注解添加屬性,這里的屬性就是方法,不需要加public abstract。系統默認加
          13     String color() default "blue"//為屬性增加默認值
          14     String value();  //當只有一個value屬性時,賦值時可以不用value=
          15 
          16 }
          17 

           1 //注解的使用
           2 @MyAnnotation(color="red",value="444")
           3 
           4 public class AnnotationTest {
           5 
           6     /**
           7      * @param args
           8      */
           9     @SuppressWarnings("deprecation"
          10     @MyAnnotation("bacd")
          11     public static void main(String[] args) {
          12         // TODO Auto-generated method stub
          13         System.runFinalizersOnExit(true);
          14         //判斷字節碼中是否有注解,不加RUNTIME則沒有,字節碼在內存中,RUNTIME內存運行階段
          15         if(AnnotationTest.class.isAnnotationPresent(MyAnnotation.class))
          16         {
          17             MyAnnotation myAnnotation=(MyAnnotation)AnnotationTest.class.getAnnotation(MyAnnotation.class);
          18             System.out.println(myAnnotation.color());
          19         }
          20     }
          21 
          22 }
          23 

          posted on 2011-01-04 10:01 杰點 閱讀(207) 評論(0)  編輯  收藏 所屬分類: JAVA


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


          網站導航:
           
          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          導航

          統計

          留言簿

          文章分類

          文章檔案

          搜索

          最新評論

          主站蜘蛛池模板: 扎赉特旗| 芦山县| 乐亭县| 保山市| 图片| 沅陵县| 枣庄市| 尚义县| 开江县| 天祝| 连江县| 久治县| 普兰店市| 马尔康县| 沧州市| 太仓市| 东海县| 新乡市| 来凤县| 双柏县| 南雄市| 邵武市| 清远市| 白朗县| 富平县| 自治县| 榆中县| 裕民县| 若尔盖县| 潍坊市| 台中县| 屏山县| 怀仁县| 达尔| 周宁县| 湾仔区| 罗山县| 大厂| 永济市| 孟津县| 贵定县|