【JavaSE系列—基礎篇7】——註解基礎知識
阿新 • • 發佈:2018-12-30
目錄
註解概念
註解,元資料的一種形式,提供了和程式有關但不是程式本身的一部分的資料。添加了註解對程式碼沒有直接的影響。
註解有很多用途,其中包含:
- 編譯器的資訊——註解可以用來使編譯器檢測錯誤或者忽略警告。
- 編譯時和部署時處理——軟體工具可以處理註解資訊以生成程式碼,XML檔案等。
- 執行時處理——一些註解可以在執行時檢查。
註解格式
最簡單的形式,一個註解可能是如下這個樣子的:
@Entity
符號@ 指示給編譯器下面跟隨的是一個註解。在下面的例子中,註解的名稱是Override:
@Override
void mySuperMethod() { ... }
註解可以包含元素,可以命名,也可以不命名,下面是這些元素的值:
@Author(
name = "Benjamin Franklin",
date = "3/27/2003"
)
class MyClass() { ... }
或者是:
@SuppressWarnings(value = "unchecked")
void myMethod() { ... }
如果這個註解只有一個元素命名為value,則可以不寫名字,如下:
@SuppressWarnings("unchecked")
void myMethod() { ... }
如果該註解沒有元素,則括號可以忽略不寫,就像前面的例子:@Override
在同一個定義中,可以寫多個註解,例如:
@Author(name = "Jane Doe")
@EBook
class MyClass { ... }
如果註解有相同的型別,我們叫它重複註解:
@Author(name = "Jane Doe")
@Author(name = "John Smith")
class MyClass { ... }
在JavaSE8的release版本中是支援重複註解的,如果想要獲得更多瞭解,請看重複註解章節。
註解型別可以是JavaSE API 中的java.lang或者java.lang.annotation包中定義的型別之一。在前面的例子中,Override和SuppressWarnings 是預定義Java註解。也可以定義自己的註解型別。Author和Ebook註解是自定義註解。
註解用在哪裡
註解可以用於宣告:宣告類,屬性,方法,和其他程式元素。
在JavaSE8的release版本中,註解可以用於型別,這裡有一些例子:
類例項建立表示式
new @Interned MyObject();
型別轉換
myString = (@NonNull String) str;
實現限制
class UnmodifiableList<T> implements
@Readonly List<@Readonly T> { ... }
拋異常宣告
void monitorTemperature() throws
@Critical TemperatureException { ... }
註解的形式被叫做型別註解。