Java注解用于為 Java代碼提供元數據寨昙, 通過關鍵字@interface來定義一個注解槐瑞,借助元注解實現一個注解。
元注解
- Target注解
注解的作用范圍孝宗,作用方法差购、類四瘫、接口或者枚舉,取值如 ElementType.METHOD, ElementType.TYPE
- Retention注解
Retention(保留)注解說明,這種類型的注解會被保留到那個階段. 有三個值:
1.RetentionPolicy.SOURCE —— 這種類型的Annotations只在源代碼級別保留,編譯時就會被忽略
2.RetentionPolicy.CLASS —— 這種類型的Annotations編譯時被保留,在class文件中存在,但JVM將會忽略
3.RetentionPolicy.RUNTIME —— 這種類型的Annotations將被JVM保留,所以他們能在運行時被JVM或其他使用反射機制的代碼所讀取和使用.
- Documented 注解
Documented 注解表明這個注解應該被 javadoc工具記錄. 默認情況下,javadoc是不包括注解的. 但如果聲明注解時指定了 @Documented,則它會被 javadoc 之類的工具處理, 所以注解類型信息也會被包括在生成的文檔中
- Inherited注解
這是一個稍微復雜的注解類型. 它指明被類注解的會自動繼承. 更具體地說,如果定義注解時使用了 @Inherited 標記,然后用定義的注解來標注另一個父類, 父類又有一個子類(subclass),則父類的所有屬性將被繼承到它的子類中.
注解的好處
注解功能使開發(fā)更容易欲逃,
注解不直接影響程序的語義找蜜, 開發(fā)和部署工具可以以某種方式閱讀這些注解并處理它們,使用包含注解的程序可以替代額外的Java源文件稳析、XML文檔洗做。
注解可以使用更少的代碼完成同樣的事情,并且有更好的編譯時錯誤檢測機制。
注解的目的是花更少的時間在那些死硬無用的細節(jié)中,更多地關注業(yè)務邏輯規(guī)則彰居。