注解的生命周期

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 
相关推荐
xixi092418 分钟前
JMeter5.6.3基础使用教程1
java·开发语言
带刺的坐椅18 分钟前
用 Solon ReActAgent 落地发票识别与智能报销
java·llm·solon·react-agent
罗超驿41 分钟前
15.Java异常处理:从束手无策到从容应对
java·开发语言
半夜修仙44 分钟前
RabbitMQ的推模式和拉模式
java·分布式·中间件·rabbitmq·github·java-rabbitmq
掉鱼的猫44 分钟前
用 Solon ReActAgent 落地发票识别与智能报销
java·llm·agent
_kerneler1 小时前
cgroup :限制cpu原理
java·服务器·前端
唐青枫1 小时前
Java Jakarta Validation 实战指南:从参数校验到分组、自定义注解和全局异常处理
java
jvmind_dev1 小时前
第一章:AI Agent 如何重新定义 Java 性能分析
java·agent
从此以后自律2 小时前
Java 并发编程完整讲解
java·开发语言
Sylvia33.2 小时前
足球数据接口开发实战:如何用火星数据API盘活赛事应用
java·服务器·开发语言·数据库·python