天天看點

JAVA注解筆記之@Retention

@Retention

@Retention是java的元注解,用來注解注解的,是注解的注解

@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.ANNOTATION_TYPE)
public @interface Retention {
    RetentionPolicy value();
}
           

@Retention中RetentionPolicy類型的value共有三種,表示注解的三個生命周期

public enum RetentionPolicy {
    /**
     * 注解僅在源檔案中,編譯class檔案後注解将被移除
     */
    SOURCE,

    /**
     * 注解被保留在class檔案中,虛拟機加載class檔案時注解将被移除
     * 這也是預設的生命周期
     */
    CLASS,

    /**
     * 注解在源檔案和編譯後的class檔案都存在,
     * 并且虛拟機加載class檔案時不會注解被移除
     */
    RUNTIME
}