天天看點

java注解

1、注解是一種類型

注解與class、interface、Enum這些類型一樣,是java中的一種類型,聲明的時候使用@interface來聲明。

2、元注解

@Retention

SOURCE   在源碼向class檔案編譯時,做一些代碼檢查
CLASS    class檔案向位元組碼編譯時,做預處理(預設值)
RUNTIME  在jvm中運作時,去動态擷取注解資訊,執行一定的邏輯
             

@Documented

@Target

ElementType.ANNOTATION_TYPE 可以給一個注解進行注解
ElementType.CONSTRUCTOR 可以給構造方法進行注解
ElementType.FIELD 可以給屬性進行注解
ElementType.LOCAL_VARIABLE 可以給局部變量進行注解
ElementType.METHOD 可以給方法進行注解
ElementType.PACKAGE 可以給一個包進行注解
ElementType.PARAMETER 可以給一個方法内的參數進行注解
ElementType.TYPE 可以給一個類型進行注解,比如類、接口、枚舉
           

@Inherited

@Repeatable

3、注解的屬性

注解的屬性也叫做成員變量。注解隻有成員變量,沒有方法

注解中所有的成員對象在使用注解時都需要被使用,除了default預設值以外

4、注解提取

反射

  1. 确定該元素是否被注解 isAnnotationPresent
  2. 被注解的話擷取到注解的參數值 getAnnotation、getAnnotations與getDeclaredAnnotations
  3. 擷取注解對象的屬性 getDeclaredFields

    5、常用注解

@AliasFor