美文网首页
Retention注解

Retention注解

作者: 哈喽沃尔德 | 来源:发表于2018-05-13 23:08 被阅读0次

@Retention --表示其被修饰的注解保留的时间
1 进入源码:

public @interface Retention {
    RetentionPolicy value();
}

可见,其有一个属性value。进入RetentionPolicy:

public enum RetentionPolicy {
   SOURCE,
   CLASS,
   RUNTIME
}

(1)可知value值有三个,SOURCE代表被@Retention修饰的注解只在源码阶段保留,不会被编译。用于做一些检查性的操作,比如 @Override 和 @SuppressWarnings(压制程序中出来的警告)
(2)CLASS代表可以被编译而生成.class文件,但不会被JVM执行,如果一个注解上没有写@Retention这个注解,则默认为@Retention(RetentionPolicy.CLASS)
,用在当编译时进行一些预处理操作,如生成一些辅助代码。
(3)RUNTIME代表可以被JVM执行,当需要在运行时动态获取注解信息(比如通过反射)时选择此策略。如@Deprecated,用来表示某个类或属性或方法已经过时,不想别人再用时,前用@Retention (RetentionPolicy.RUNTIME)修饰。
2 通过源码可以看到,@Retention注解上有一行@Target(ElementType.ANNOTATION_TYPE)修饰,表明他只可以用来修饰注解。

相关文章

  • @Retention @Target @Document @In

    Java中的元注解: @Retention 注解保留的位置 @Retention(Retention.Policy...

  • @Retention作用详析

    注解@Retention用来修饰注解,是注解的注解,称为元注解。Retention注解有一个属性value,是Re...

  • java注解@Retention保留时机详析

    注解@Retention用来修饰注解,是注解的注解。称为元注解。 Retention注解有一个属性value,是R...

  • java 基础-注解学习

    一 元注解 1:@Retention元注解 ,表示注解有效存在的生命周期长短,取值有如下 @Retention(...

  • Java元注解

    @Retention: 定义注解的保留策略 @Retention(RetentionPolicy.SOURCE) ...

  • @Retention注解简单说明

    @Retention注解简单说明 是什么: @Retention是用来修饰注解的,它定义了该注解被保留时间的长短,...

  • Retention注解

    @Retention --表示其被修饰的注解保留的时间1 进入源码: 可见,其有一个属性value。进入Rete...

  • Spring 注解@Target @Retention @Doc

    Retention注解Retention(保留)注解说明,这种类型的注解会被保留到那个阶段. 有三个值: 1.Re...

  • Java注解

    基础注解Override WebServlet 元注解 @Target 注解的作用目标@Retention 注解的...

  • ANNOTATION注解

    元注解@Target,@Retention,@Documented,@Inherited @Target表示该注解...

网友评论

      本文标题:Retention注解

      本文链接:https://www.haomeiwen.com/subject/pmjrdftx.html