@Retention注解是jdk的一個元注解,用來指示其它注解類型保留的生命周期。
一、注解類,有一個保留策略參數,可以不傳默認是RetentionPolicy.CLASS
package java.lang.annotation; @Documented @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.ANNOTATION_TYPE) public @interface Retention { RetentionPolicy value(); }
二、枚舉類是一個注解保留策略,有三種策略
package java.lang.annotation; public enum RetentionPolicy { //注解只會存在源代碼中,將會被編譯器丟棄 SOURCE, //注解將會保留到class文件階段,但是在加載如vm的時候會被拋棄 CLASS, //注解不單會被保留到class文件階段,而且也會被vm加載進虛擬機的時候保留 RUNTIME }