天天看點

Java 學習:Java注解

注解(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

Java 學習:Java注解

示例圖:@deprecated

Java 學習:Java注解

示例圖:@suppresswarnings

不使用@suppresswarnings注解的情況:

Java 學習:Java注解

使用@suppresswarnings注解 到某個方法上的情況:

Java 學習:Java注解

使用@suppresswarnings注解 到類上的情況:

Java 學習:Java注解

idea中 選中某個注解 按 ctrl + b 進入原碼,可以檢視該注解的作用域,下圖是 @override 注解源碼:

Java 學習:Java注解

注:圖中源碼第49、50行的 @target 、 @retention 是注解的注解,也叫元注解。

了解元注解

圖中源碼第51行開始,是定義注解的方式。

<b>加油! 未來可期!</b>