杰點

          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 內存中的字節(jié)碼

          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 參數(shù) 一個可以,兩個以上 參數(shù)為數(shù)組
          10 //注解的注解目標({方法,類})  描述class,interface enum 的父類都是TYPE
          11 public @interface MyAnnotation {
          12     //為注解添加屬性,這里的屬性就是方法,不需要加public abstract。系統(tǒng)默認加
          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         //判斷字節(jié)碼中是否有注解,不加RUNTIME則沒有,字節(jié)碼在內存中,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 杰點 閱讀(208) 評論(0)  編輯  收藏 所屬分類: JAVA


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


          網(wǎng)站導航:
           
          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          導航

          統(tǒng)計

          留言簿

          文章分類

          文章檔案

          搜索

          最新評論

          主站蜘蛛池模板: 久治县| 偃师市| 德化县| 新乡市| 济宁市| 新野县| 佛学| 思南县| 康平县| 纳雍县| 林周县| 贵南县| 灵寿县| 莲花县| 泗洪县| 大安市| 黄山市| 绥芬河市| 无棣县| 濮阳市| 大英县| 岳池县| 临沂市| 锡林浩特市| 射阳县| 报价| 黄大仙区| 大理市| 青阳县| 乌兰县| 饶河县| 城固县| 武义县| 沂水县| 甘德县| 民和| 鸡西市| 英山县| 仙桃市| 津市市| 纳雍县|