自定義注解:
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,期待你的加入!!