1. 程式人生 > >【JavaSE系列—基礎篇7】——註解基礎知識

【JavaSE系列—基礎篇7】——註解基礎知識

目錄

註解概念

註解,元資料的一種形式,提供了和程式有關但不是程式本身的一部分的資料。添加了註解對程式碼沒有直接的影響。
註解有很多用途,其中包含:

  1. 編譯器的資訊——註解可以用來使編譯器檢測錯誤或者忽略警告。
  2. 編譯時和部署時處理——軟體工具可以處理註解資訊以生成程式碼,XML檔案等。
  3. 執行時處理——一些註解可以在執行時檢查。

註解格式

最簡單的形式,一個註解可能是如下這個樣子的:

@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 { ... }

註解的形式被叫做型別註解。