注解的生命周期

1、RetentionPolicy.SOURCE:注解只保留在源文件,当Java文件编译成class文件的时候,注解被遗弃,示例:@Override

java 复制代码
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.SOURCE)
public @interface Override {
}

2、RetentionPolicy.CLASS:注解被保留到class文件,但jvm加载class文件时候被遗弃,这是默认的生命周期,示例:@NotNull

java 复制代码
@Documented
@Retention(RetentionPolicy.CLASS)
@Target({ElementType.METHOD, ElementType.FIELD, ElementType.PARAMETER, ElementType.LOCAL_VARIABLE})
public @interface NotNull {
    String value() default "";
}

3、RetentionPolicy.RUNTIME:注解不仅被保存到class文件中,jvm加载class文件之后,仍然存在,这类注解很多,自定义的注解往往是RUNTIME,程序运行时需要一直存在,如spirng的各类引入注解,示例:@Resource

java 复制代码
@Target({TYPE, FIELD, METHOD})
@Retention(RUNTIME)
public @interface Resource 
相关推荐
愤怒的代码3 分钟前
深入理解ThreadLocal
android·java·源码
__万波__11 分钟前
二十三种设计模式(十二)--代理模式
java·设计模式·代理模式
乐之者v12 分钟前
时区相关的问题,开发如何自测?
java
我不是8神12 分钟前
消息队列(MQ)核心知识点总结
java·开发语言
BullSmall16 分钟前
Tomcat 9 证书最佳存放路径指南
java·tomcat
一起养小猫16 分钟前
《Java数据结构与算法》第四篇(一)Java.util包中的树结构实现详解
java·开发语言·数据结构
nbsaas-boot27 分钟前
Java 还是 Go?——从工程规模到长期演进的技术选型思考
java·开发语言·golang
代码不停28 分钟前
Java递归综合练习
java·开发语言·算法·回归
张哈大29 分钟前
读懂大模型核心:Transformer 与 AI 发展的底层逻辑
java·神经网络·机器学习
魔镜前的帅比31 分钟前
(开源项目)xsun_workflow_jira
java·jira