自定義JAVA註解

johnchou發表於2021-09-09

元註解

元註解指用來定義註解的註解,例如:@Retention @Target Inherited @Documented等等。最為重要和經常使用的是@Retention @Target

@Retention

@Retention用於定義註解生效的返回,取值型別為RetentionPolicyRetentionPolicy是一個列舉類,定義了三種值:

  • SOURCE:註解只存在原始碼中,編譯後就回被消除,例如:@Override @SuppressWarnings等。
  • CLASS:註解存在於原始碼和編譯後的位元組碼檔案中,但是執行時無法獲取註解資訊。
  • RUNTIME:註解在執行時仍然生效,例如@Deprecated等。

@Target

@Target用於定義註解作用的物件,取值型別為ElementTypeElementType是一個列舉類,定義了一下幾種值:

  • TYPE:作用在類、介面和列舉。
  • FIELD:作用在屬性上,包括列舉變數的常量屬性。
  • METHOD:作用在方法。
  • PARAMETER:作用在方法中引數。
  • CONSTRUCTOR:作用在構造方法。
  • LOCAL_VARIABLE:作用在區域性變數。
  • ANNOTATION_TYPE:作用在註解型別。
  • PACKAGE:作用在包。

註解定義

JAVA註解使用@interface定義,基本的形式如下:

@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface RuntimePrinter {
    String name;
}

註解解析

註解解析使用JAVA反射機制,在ClassField類中有如下方法,經常被使用在註解解析中。

  • isAnnotationPresent:是否存在制定註解
  • getAnnotation:獲取標註的註解物件

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4422/viewspace-2821377/,如需轉載,請註明出處,否則將追究法律責任。

相關文章