Metadata 意為「關於數據的數據」。Java 注解(Annotation)是元數據的標準化實現,廣泛用於:生成文檔(Javadoc)、追蹤代碼依賴、編譯時格式檢查、替代配置文件(如 Hibernate 注解配置)。
| 元注解 | 作用 | 關鍵參數 |
| @Target | 限制注解可用位置 | ElementType: CONSTRUCTOR, FIELD, METHOD, TYPE, PACKAGE 等 |
| @Retention | 指定保留階段 | RetentionPolicy: SOURCE, CLASS, RUNTIME |
| @Documented | 將注解包含進 Javadoc | — |
| @Inherited | 允許子類繼承父類注解 | — |
自定義注解實戰
1. 簡單標記注解
package com.oreilly.tiger.ch06;
public @interface InProgress { }
2. 使用自定義注解
@com.oreilly.tiger.ch06.InProgress
public void calculateInterest(float amount, float rate) { }
3. 添加成員
public @interface InProgress {
String value();
}
4. 設置默認值
public @interface GroupTODO {
public enum Severity { CRITICAL, IMPORTANT, TRIVIAL, DOCUMENTATION }
Severity severity() default Severity.IMPORTANT;
String item();
String assignedTo();
String dateAssigned();
}
5. 使用默認值 / 改寫默認值
@GroupTODO(
item = "Figure out interest per month",
assignedTo = "Brett",
dateAssigned = "08/04/2004"
)
public void calculateInterest(float amount, float rate) { }
@GroupTODO(
severity = GroupTODO.Severity.DOCUMENTATION,
item = "Explain unusual method",
assignedTo = "Jon",
dateAssigned = "07/30/2004"
)
public void anotherMethod() { }
總結
Java 注解機制從簡單標記發展為功能完備的元數據體系,配合反射 API 可在運行時讀取注解信息,驅動框架自動化行為(如 Spring、Hibernate、JUnit),是現代 Java 開發的基石技術之一。
- 上一篇文章: Hibernate 與 Struts 分頁實現策略對比與最佳實踐
- 下一篇文章: Tomcat 服務器安全加固實戰:從滲透測試到防禦體系構建
Copyright ©
程式碼之家 All Rights Reserved