可以註釋Java包、類型(類、接口、枚舉)、構造函數、方法、字段、參數和局部變量。Java編譯器可以根據指令解釋註釋並丟棄註釋,或者將註釋放入編譯生成的類文件中,使其在運行時可用。
2.註釋和註釋類型
批註類型是壹種特殊的接口類型,批註就是批註批註類型的壹個例子。
註釋類型也有名稱和成員,註釋中包含的信息是鍵-值對的形式,可以有零個或更多。
3.Java中定義的壹些註釋:
@Override告訴編譯器,這個方法應該覆蓋壹個超類方法,以防止程序員覆蓋錯誤。
@Deprecated此標識方法或類(接口類型)已過期,警告用戶不推薦使用。
添加@SafeVarargs JDK7是為了避免在使用泛型化時,在運行時無法明確確認變量參數的警告。當然,也可以使用@SuppressWarnings來避免檢查,這顯然具有更廣的抑制範圍。
@ suppress warnings(value = { " unchecked " })取消編譯警告,並將其應用於類型、構造函數、方法、字段、參數和局部變量。值是壹個類型數組,有效值為:
全部,抑制所有警告
裝箱,抑制與裝箱/取消裝箱操作相關的警告
強制轉換,抑制與強制轉換操作相關的警告
dep-ann,隱藏與不推薦使用的註釋相關的警告
棄用,抑制與棄用相關的警告
fallthrough,抑制與switch語句中缺失的分隔符相關的警告
最後,抑制相對於finally block不返回的警告
隱藏,隱藏與隱藏變量的局部變量相關的警告
不完整-switch,抑制與switch語句中缺少的條目相關的警告(枚舉情況)
javadoc,抑制相對於javadoc警告的警告
nls,抑制與非nls字符串文字相關的警告
空,抑制與空分析相關的警告
rawtypes,抑制與使用原始類型相關的警告
限制,抑制與不鼓勵或禁止的引用的使用相關的警告
serial,隱藏與可序列化類的缺失serialVersionUID字段相關的警告
靜態訪問,抑制與不正確的靜態訪問相關的警告
static-method,抑制與可聲明為靜態的方法相關的警告
super,抑制與在沒有超級調用的情況下重寫方法相關的警告
合成訪問,抑制與內部類的非優化訪問相關的警告
未選中,抑制與未選中操作相關的警告
非限定字段訪問,抑制與非限定字段訪問相關的警告
未使用,抑制與未使用代碼和死代碼相關的警告
4.註釋的定義
使用@interface關鍵字聲明註釋。
public @ interface my annotation 1
屬性可以在註釋中定義。
字符串名稱默認為“defval”;
值是註釋中的壹個特殊屬性。
如果註釋中定義的屬性名稱是value,則該屬性在使用時可以省略屬性名稱。
例如,聲明壹個註釋:
@保留(RetentionPolicy。運行時間)
public @interface MyAnno1 {
string msg();
int value();
}