天天看點

自定義注解

自定義注解:

1.成員類型是受限的,合法的類型包括原始類型及String,Calss,Anootation,Enumreation

2.如果注解隻有一個成員,則成員名必須取名為Value(),在使用的時可以忽略成員名和指派号(=)

3.沒有成員的注解稱為辨別注解

public @interface Description{//使用@interface關鍵字注解

String name();//成員以無參無異常方式聲明

String author();

int age() default 19;//可以用default為成員變量指定一個預設值

}

元注解

@Target({ElementType.CONSTRUCTOR,ElementType.FIELD,ElementType.METHOD})

// Target 注解的作用域 CONSTRUCTOR 構造方法聲明,FIELD 字段聲明,LOCAL_VARIABLE 局部變量聲明 ,METHOD 方法聲明,PACKAGE 包聲明,PARAMETER 參數聲明,TYPE 類接口。

@Retention(RetentionPolicy.RUNTIME)

//Retention 生命周期——SOURCE 隻在源碼顯示,編譯時會丢棄;CLASS 編譯時會記錄到class中,運作時忽略;RUNTIME 運作時存在,可以通過反射讀取。

@Inherited

//Inherited 允許子類繼承

@Documented

//Documented 生成javadoc的時候包含注解

下面以一個demo示範解析注解

接口

實作類

測試類:

優秀不夠,你是否無可替代

軟體測試交流QQ群:721256703,期待你的加入!!

自定義注解

繼續閱讀