美文网首页
@Retention作用详析

@Retention作用详析

作者: 陈大吼 | 来源:发表于2020-05-04 20:54 被阅读0次

注解@Retention用来修饰注解,是注解的注解,称为元注解。
Retention注解有一个属性value,是RetentionPolicy枚举类型,决定了Retention注解应该如何去保持。RetentionPolicy有3个值:CLASS RUNTIME SOURCE

  • RetentionPolicy.SOURCE:注解只保留在源文件中,编译时注解会被遗弃;
  • RetentionPolicy.CLASS:注解会保留到class文件,当class文件被Load时被遗弃,这是注解默认的生命周期;
  • RetentionPolicy.RUNTIME:注解不仅被保存到class文件中,Load之后,仍然存在;
    这3个生命周期分别对应于:源文件---> .class文件 ---> 内存中的字节码
如何选择呢?

首先,要明确生命周期长度 SOURCE < CLASS < RUNTIME ,所以前者能作用的地方后者一定也能作用。

  • 如果需要在运行时去动态获取注解信息,那只能用 RUNTIME 注解
  • 如果编译时需要依赖注解进行预处理,比如生成一些辅助代码等,如 ButterKnife,就用 CLASS注解;
  • 如果只是做一些检查性的操作,比如 @Override 和 @SuppressWarnings,使用SOURCE 注解。一般是供IDE使用

相关文章

  • @Retention作用详析

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

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

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

  • 注解@Retention的作用

    https://blog.csdn.net/u010002184/article/details/79166478

  • Java注解

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

  • Spring 常用注解解析

    原生注解 @Retention: 定义注解的保留策略 @Target: 定义注解的作用目标 @Document: ...

  • 注解

    @Target -- 表示注解的作用对象 @Retention -- 表示注解类型保留的时长 @Document...

  • LiveData原理详析

    LiveData顾名思义活着的数据,是什么原理导致数据能感知程序的生命周期,下面我们就从源码进行解析。 一、Liv...

  • 注解

    注解的作用范围@Target和生命周期@Retention作用范围:包,类,字段,方法,方法的参数,局部变量生命周...

  • 元注解以及自定义注解

    元注解 元注解的作用就是负责注解其他注解。1.@Target2.@Retention3.@Documented4....

  • @Retention @Target @Document @In

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

网友评论

      本文标题:@Retention作用详析

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