跳至內容

Java註解

出自Taiwan Tongues 台語維基
這是此頁批准,以及是最近的修訂。

Java 註解閣稱Java 標註,是 Java 語言五石樵零版本開始支援加入原始碼的特殊語法元資料。

Java 語言內底的類、方法、變數、參數佮包等等攏會當被標註。和 Javadoc 無仝,Java 標註會當通過反射取得標註內容。佇咧編譯器生成類檔案的時陣,標準會當予人入去位元組去碼內底。Java 虛擬機器會當保留標視內容,咧執行的時會當取得著標內容。 當然伊嘛是支援自訂 Java 標註。

歷史

Java 平台有真濟特別的註解,比如講 transient 修飾詞,` @ deprecated ` javadoc 標籤。二空空二年,文案 JSR 被一百七十五提出了通用需求的註解(抑是講元註解)手段,並且佇二空空四年九月收著真濟人的呵咾。對 JDK 一孵五開始,java 開始支援註解。Annotation Processing tool(抑是講 apt tool)提供一个補充性的編譯時註解操作的介面。文件 JSR 學兩百六十九將伊規格化,佇咧 JDK 一爿六寫入編譯器 javac 中。

內建的註解

Java 定義一套註解,共有七个,三个佇 java . lang 中,賰四个佇咧 java . lang . annotation 中

作用佇咧代碼的註解是

  • @ Override-檢查應該敢是重寫方法。若發現著其父類別,或者是參照的介面內底並無該方法的時陣,會報編譯錯誤。
  • @ Deprecated-𪜶是標記過時方法。若使用這个方法,會報編譯警告。
  • @ SuppressWarnings-指示編譯器去忽略註解中聲明的警告。

作用佇其他註解的註解(抑是講元註解)是 :

  • @ Retention-標識這个註解按怎儲存,是干焦佇咧代碼中,猶是編入 class 檔案中,抑是咧執行的時會當通過反射存取。
  • @ Documented-標記遮的註解敢有包括佇使用者文件內底。
  • @ Target-標記這个註解應該是佗一種 Java 成員。
  • @ Inherited-標記這个註解是繼承佇佗一个註解類(預設之下,註解並無繼承任何子類)

對 Java 七開始,額外添加三个註解 :

  • @ SafeVarargs-Java 七開始支援,忽略任何使用參數做泛型變數的方法抑是建構函式呼叫產生的警告。
  • @ FunctionalInterface-Java 八開始支援,標識一个匿名函式抑是函數式介面。
  • @ Repeatable-Java 八開始支援,標識某註解會當仝一个聲明幾若改。

實例

標準會當包含一个關鍵字佮值的對所構成的列表:

標註聲明中會當用標註說明使用的方式、時間佮物件:

編譯器保留一組標註用佇特定語法目的 ( 包括講 @ Deprecated , @ Override 和 @ SuppressWarnings 等 )。

標準定定用佇軟體框做使用者定義的類和方法提供參照外部資源的情形,如 XML 設定檔、事務環境等等。以下是一个標註過的 EJB 三-c零的類:

以上代碼中標註無執行任何特定行為,是咧執行的時陣,EJB 容器得著有夠的資訊,生成物件到關聯式資料庫的對映。

參考參照