注解(annotation) 又稱java标注,是 jdk1.5 引入的一種注釋機制
annotation 的作用:
1. 編譯檢查,annotation不是程式本身,但可以對程式作出解釋,可以被其他程式(如:編譯器等)讀取。
2. 在反射中使用,我們可以通過反射機制程式設計實作資料通路。
3. 根據 annotation 生成幫助文檔,通過給annotation 加上 @documented标簽,使 該annotation标簽出現在javadoc中。
annotation 的格式:
注解是以 “@注釋名”在代碼中存在的,還可以添加一些參數值。
例如:@suppresswarnings(value="unchecked")
annotation 在哪裡使用?
可以附加在package、class、method、field等上面,相當于給他們添加了額外的輔助資訊,可以通過反射對這些中繼資料通路。
jdk中的三個基本注解:
@override
定義在java.lang.override中,用于限定某個方法,是重寫父類或實作接口的方法,該注解隻能修飾方法。
@deprecated
定義在java.lang.deprecated中,此注解可以修飾方法、屬性、類,用于表示某個程式元素(類、方法、屬性等) 已經過時。
@suppresswarnings
定義在java.lang.suppresswarnings中,用于抑制編譯時的警告資訊,與前面兩個注解不同,你需要添加一個參數才能正确使用,這些參數在jdk中已經定義好了的選擇性使用(可多選)。
@suppresswarnings(value="all") 屏蔽所有警告 【參數裡的value字樣可以省略,如: @suppresswarnings("all")】
@suppresswarnings("unchecked") 屏蔽未檢查警告
@suppresswarnings({"unchecked","deprecation"}) 屏蔽未檢查警告 和 過時警告
示例圖:@override
示例圖:@deprecated
示例圖:@suppresswarnings
不使用@suppresswarnings注解的情況:
使用@suppresswarnings注解 到某個方法上的情況:
使用@suppresswarnings注解 到類上的情況:
idea中 選中某個注解 按 ctrl + b 進入原碼,可以檢視該注解的作用域,下圖是 @override 注解源碼:
注:圖中源碼第49、50行的 @target 、 @retention 是注解的注解,也叫元注解。
了解元注解
圖中源碼第51行開始,是定義注解的方式。
<b>加油! 未來可期!</b>