隨筆 自定義註解簡單實現

自定義註解: 

@Target(FIELD)
@Retention(RUNTIME)
@Documented
public @interface Ano {
    public String name() default "ycx";
    public String value();
}

@Documented // 代表這個註解,可以被javadoc 處理的(加不加都行)

@Retention(RetentionPolicy.RUNTIME)

// RetentionPolicy 生命週期,一共有三個

// SOURCE 只留在源碼,編譯好後的代碼是不有該註解的,該註解一旦編譯就不存在了 ;

// class 只停留在字節碼,運行時不會有;

// RUNTIME 運行時需要反射來獲取該註解

@Target({ElementType.TYPE,ElementType.METHOD, ElementType.FIELD, ElementType.PARAMETER, ElementType.CONSTRUCTOR, ElementType.LOCAL_VARIABLE, ElementType.PACKAGE, ElementType.ANNOTATION_TYPE})

// 該註解用在地方(方法,參數,類)

使用:

public class test2 {
    @Ano(value = "555")
    private String value1;

    public static void main(String[] args) {
        test2 m=new test2();
        m.method();
    }
    public void method() {
       Field[] fields = test2.class.getDeclaredFields();
       Ano a =  fields[0].getAnnotation(Ano.class);
        System.out.println(a.name()+","+a.value());
    }
}

 輸出:

ycx,555

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章