首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java 註解(Annotation)基礎概念與三大內置註解詳解

     編輯:Java 相關知識

什麼是 Annotation

Annotation(註解)是 JDK 5.0 引入的元數據機制,允許在包、類、方法、字段、參數、局部變量聲明上關聯任意信息(name=value 對)。本質是一個繼承 java.lang.annotation.Annotation 的接口,運行時通過反射讀取。

元數據 三大作用分類

  1. 編寫文檔:如 Javadoc 標簽生成 API 文檔。
  2. 代碼分析:靜態分析工具檢測代碼規範、潛在 Bug。
  3. 編譯檢查:編譯器根據註解執行基本檢查(如 @Override)。

註解的四個特性

  1. 以標簽形式存在於源碼中(@AnnotationName)。
  2. 類型安全:屬性有明確類型(基本類型、String、Class、Enum、Annotation、數組)。
  3. 需編譯器外工具處理(編譯期/運行期/文檔生成)。
  4. 可僅存在於源碼級 (SOURCE)、編譯至 class (CLASS) 或運行時保留 (RUNTIME)。

Annotation 與 Annotation 類型

  • Annotation:使用實例,如 @SuppressWarnings("unchecked"),行為似修飾符。
  • Annotation 類型:定義註解結構的特殊接口,用 @interface 聲明,成員以無參方法形式定義,可有默認值。

註解分類

按參數個數

  1. 標記註解:無成員,如 @Override。
  2. 單值註解:單一成員慣命名為 value,如 @FruitName("Apple")。
  3. 完整註解:多成員,如 @FruitProvider(id=1, name="...")。

按用途

  1. JDK 內置系統註解:@Override、@Deprecated、@SuppressWarnings。
  2. 元註解:註解其他註解,@Target、@Retention、@Documented、@Inherited。
  3. 自定義註解:業務自定義。

三大內置系統註解詳解

1. @Override —— 限定重寫父類方法

  • 標記註解,僅用於方法。
  • 編譯期檢查:若父類無同簽名方法則報錯,防止拼寫錯誤(如 displayname() vs displayName())。

2. @Deprecated —— 標記已過時

  • 標記註解,用於類/方法/字段。
  • 編譯器勸阻使用,且具有「傳染性」:覆蓋/繼承過時元素也會警告。
  • 區別 @deprecated Javadoc 標簽:前者編譯器識別,後者文檔工具識別。建議雙重標記並遷移至 @Deprecated。

3. @SuppressWarnings —— 抑制編譯器警告

  • 單值註解,成員 String[] value(),常用縮寫 @SuppressWarnings("unchecked")。
  • 常用參數:
參數抑制警告類型
deprecation使用過時 API
unchecked泛型未檢查轉換(如原始集合類型)
fallthroughswitch 缺少 break
path類路徑/源路徑不存在
serial可序列化類缺少 serialVersionUID
finallyfinally 塊不能正常完成
all以上所有

示例:@SuppressWarnings({"rawtypes", "unchecked"}) 同時抑制原始類型與未檢查轉換警告。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved