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

Java 註解(Annotation)入門:從 XML 元數據到代碼內置描述的演進

     編輯:Java 綜合教學

Java 註解(Annotation)入門:從 XML 元數據到代碼內置描述的演進

所謂元數據即「描述數據的數據」。早期框架(Struts struts-config.xml、Hibernate .hbm.xml)採用外部 XML 文件描述類與資源映射關係,存在與代碼分離、難維護、一致性差等問題。JDK 1.5 引入 Annotation(註解),將元數據內嵌至代碼,運行時通過反射解析,實現配置與代碼統一。

核心概念

  • 元數據:描述代碼間關系或代碼與外部資源(數據庫表、URL 映射)聯系的數據。
  • XML 時代痛點:配置文件膨脹、重構不同步、編輯器支持弱、部署需同步多文件。
  • Annotation 優勢:編碼時即時提示、重構自動同步、編譯期檢查、運行時反射獲取、支持屬性參數化配置。

內置註解示例

@Override          // 標記重寫父類方法,編譯器檢查簽名
@Deprecated        // 標記過時 API
@SuppressWarnings  // 抑制編譯器警告
@FunctionalInterface // 標記函數式接口(單抽象方法),Java 8

自定義註解與元註解

@Target(ElementType.METHOD)           // 作用目標:方法
@Retention(RetentionPolicy.RUNTIME)   // 保留策略:運行時可見
@Documented                           // 納入 Javadoc
@Inherited                            // 允許子類繼承
public @interface MyAnnotation {
    String value() default "";        // 屬性,默認值
    int count() default 1;
}

運行時解析

Method m = MyClass.class.getMethod("myMethod");
MyAnnotation ann = m.getAnnotation(MyAnnotation.class);
if (ann != null) {
    System.out.println(ann.value() + ", " + ann.count());
}
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved