概述
Annotation就是註解用來說明程序,時給計算機看的。(註釋的話就是給程序Y看的)。
可以聲明在包、類、方法、局部變量、方法參數等的前面,用來對這些元素進行說明註釋。
作用
- 編寫文檔:通過代碼裏標識的元數據生成文檔(生成doc文檔)==(這個太有趣了,所以我就嘗試了一波)
步驟按 /** 再按一下回車,就可以寫註釋,然後再cmd裏面 用javadoc creatdoc.java,然後打開生成的index.htlm文件,就可以看到生成的doc文檔了,代碼如下
/**
* 註解javadoc演示
* @author Zhang
*@since 1.5
*
*/
public class creatdoc {
/**
* 計算兩數的和
* @param a
* @param b
* @return 兩數的和
*/
public int add(int a,int b) {
return a+b;
}
}
具體因爲一些細節原因沒用太成功(我透遼)
- 代碼分析
- 編譯檢查
基本內置註解
@Override 它的作用是對覆蓋超類中方法的方法進行標記,如果被標記的方法並沒有實際覆蓋超類中的方法,則編譯器會發出錯誤警告。
@Deprecated 用該註解標註內容,表示已經過時
@SuppressWarnings 用來壓制警告 @SuppressWarnings("all")傳遞參數all表示壓制所有的警告
自定義Annotation類型
在定義Annotation類型時,@Retention設置爲RetentionPolicy.RUNTIME,那麼在程序運行時通過反射就可以獲取到相關的Annotation信息,如獲取構造方法、字段、方法的Annotation信息。
public @interface NoMemberAnnotation{
//屬性列表
}
要求
1.屬性的返回值(只能)有下列取值
基本數據類型、String、枚舉、註解、以上類型的數組
2.再定義屬性的時候可以用default關鍵字給屬性默認值初始化
public @interface NoMemberAnnotation{
String value() default"默認值";
}
3.如果只有一個屬性一般名稱定義爲value,且value可以省略
元註解
- @Targe 描述註解的註解(如果沒用Targe表示適用於所有程序)
ElementType中的枚舉常量
- @Retention 描述註解被保留的階段
例如
@Retention(RetentionPolicy.RUNTIME);
- @Inherited 描述註解知否被子類繼承