@Target、@Retention、@Document注解簡介


@Target、@Retention、@Document注解簡介

源碼樣例:

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
public @interface MthCache {
    String key();
}

@Target 注解

功能:指明了修飾的這個注解的使用范圍,即被描述的注解可以用在哪里。

ElementType的取值包含以下幾種:

  • TYPE:類,接口或者枚舉
  • FIELD:域,包含枚舉常量
  • METHOD:方法
  • PARAMETER:參數
  • CONSTRUCTOR:構造方法
  • LOCAL_VARIABLE:局部變量
  • ANNOTATION_TYPE:注解類型
  • PACKAGE:包

@Retention 注解

功能:指明修飾的注解的生存周期,即會保留到哪個階段。

RetentionPolicy的取值包含以下三種:

  • SOURCE:源碼級別保留,編譯后即丟棄。
  • CLASS:編譯級別保留,編譯后的class文件中存在,在jvm運行時丟棄,這是默認值。
  • RUNTIME: 運行級別保留,編譯后的class文件中存在,在jvm運行時保留,可以被反射調用。

@Documented 注解

功能:指明修飾的注解,可以被例如javadoc此類的工具文檔化,只負責標記,沒有成員取值


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM