注釋(Annotations)
注釋是可以添加到代碼中的修飾符,可以用於包聲明、型別宣告、建構函式、方法、欄位、參數和變數。Tiger 包含內建注釋,還支援您自己編寫的定製注釋。
它的三種內建注釋:SuppressWarnings, Deprecated, and Override。
SuppressWarnings
這種注釋在類和方法層級阻止編譯器拋出的警告。有時你知道使用一些不被推薦使用的方法更好一些或者必須執行一些存在型別安全的靜態方法,如果使用這些方法將不斷地收到根本無關的事情的警告。SuppressWarnings能使編譯器不給您增添麻煩!
SupressWarnings 是具有變數的 — 所以您將單一注釋類型與該變數一起使用。可以以值數組來提供變數,其中每個值指明要阻止的一種特定警告類型。
@SuppressWarnings("deprecation")//使用不被推薦的方法 public static void selfDestruct() { Thread.currentThread().stop(); }
@SuppressWarings("unchecked") public void nonGenericsMethod() { List wordList = new ArrayList(); // 沒有指明List中值的類型 wordList.add("foo"); // 可能引發異常 }
SuppressWarnings 中變數的值採用數組,使您可以在同一注釋中阻止多個警告。例如,
@SuppressWarnings("unchecked", "fallthrough")
使用兩個值的數組。此功能為處理
錯誤提供了非常靈活的方法,無需進行大量的工作。
Deprecated
Deprecated的用處不是很大。使用 Deprecated
來對不應再使用的方法進行注釋。大多數
情況下@Deprecated和javadoc同時使用。
public class DeprecatedClass { @Deprecated public void doSomething() { // 代碼
}
//替換doSomething()的方法,可能實現更好一點 public void doSomethingElse() { // 代碼 }}
如果通過覆蓋或調用來使用聲明為過時的方法,編譯器將處理注釋,發現不應該使用該
方法,並發出錯誤訊息。
Override
Override 應該僅用於方法(不用於類、包聲明或其他構造)。它指明注釋的方法將覆蓋超
類中的方法。
@Overridepublic int hashCode() { ...}
如果你將hashCode() 寫成hashcode() "C",編譯時間不會出錯,只有在運行時才會報錯。
通過使用Override注釋,如果實際沒有執行重載編譯時間就會報錯。Override注釋在父類方法改
變時也會發生效用。比如父類方法新增了一個參數或者方法改名了,那麼子類編譯時間就會出錯,就
不會令人很迷惑了。