java元注解 @Retention注解使用
Posted 就这个名字好
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java元注解 @Retention注解使用相关的知识,希望对你有一定的参考价值。
@Retention定义了该Annotation被保留的时间长短:
1.某些Annotation仅出现在源代码中,而被编译器丢弃;
2.另一些却被编译在class文件中,注解保留在class文件中,在加载到JVM虚拟机时丢弃,这是默认行为,所以没有用Retention注解的注解,都会采用这种策略
3.而另一些在class被装载时将被读取,注解保留在程序运行期间,此时可以通过反射获得定义在某个类上的所有注解
作用:表示需要在什么级别保存该注释信息,用于描述注解的生命周期(即:被描述的注解在什么范围内有效)
取值(RetentionPoicy)有:
1.SOURCE:在源文件中有效(即源文件保留)
2.CLASS:在class文件中有效(即class保留)
3.RUNTIME:在运行时有效(即运行时保留)
Retention meta-annotation类型有唯一的value作为成员
它的取值来自java.lang.annotation.RetentionPolicy的枚举类型值。具体实例如下:
RateLimit 注解的的RetentionPolicy的属性值是RUNTIME,这样注解处理器可以通过反射,获取到该注解的属性值,从而去做一些运行时的逻辑处理
以上是关于java元注解 @Retention注解使用的主要内容,如果未能解决你的问题,请参考以下文章