注解的生命周期

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 
相关推荐
devilnumber7 分钟前
Spring Boot 2 vs Spring Boot 3:50 条核心区别 + 升级优势 + 避坑指南
java·spring boot·springboot升级
武超杰9 分钟前
Spring Cloud Alibaba Nacos 进阶:配置隔离、集群、持久化与开机自启
java·开发语言
Venhoul9 分钟前
@Scheduled(cron = “1 0 0 * * ?“用法介绍
java
Rabitebla13 分钟前
C++类和对象(中):默认函数 + 运算符重载 + 日期类实现完整笔记
java·开发语言·javascript
Bat U22 分钟前
JavaEE|多线程(一)
java·服务器·开发语言
逻辑驱动的ken31 分钟前
Java高频面试考点场景题05
java·开发语言·深度学习·求职招聘·春招
SamDeepThinking32 分钟前
秒杀系统需求PRD
java·后端·架构
一 乐43 分钟前
咖啡商城|基于springboot + vue咖啡商城系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·论文·毕设·咖啡商城系统
Royzst43 分钟前
String方法
java·开发语言
学习使我健康1 小时前
Android 事件分发机制
android·java·前端