注解的生命周期

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 
相关推荐
布朗克1686 分钟前
04 变量与数据类型
java·变量与数据类型
hdsoft_huge6 分钟前
以2026世界杯晋级逻辑,生动拆解SpringBoot软件架构
java·spring boot·后端
曹牧8 分钟前
Java:Unix时间戳
java·开发语言
涛声依旧-底层原理研究所15 分钟前
Node.js在高并发低延迟场景中的优势
java·人工智能·python·node.js
方也_arkling18 分钟前
【Java-Day09】继承
java·开发语言
西安邮电大学19 分钟前
Kafka保证消息顺序性
java·后端·kafka
迈巴赫车主19 分钟前
蓝桥杯21247弹跳鞋java
java·开发语言·数据结构·算法·职场和发展·蓝桥杯
xinhuanjieyi20 分钟前
JavaFX WebView 不支持 Brotli (br) 压缩编码警告修复
java
Adair_z25 分钟前
[SEO艺术重读] 第13篇 SEO教育与研究
java·网络·数据库
utf8mb4安全女神1 小时前
⽇志管理与深层防⽕墙
java·开发语言·spring boot