注解的生命周期

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 
相关推荐
凤凰院凶涛QAQ3 分钟前
《Java版数据结构 & 集合类剖析》集合框架的封装设计与顺序表:“从 Iterable 到 ArrayList:集合框架的‘职业树“
java·开发语言·数据结构
孟华苏17 分钟前
怎么快速排查内存泄漏问题
java·开发语言·python
noipp20 分钟前
推荐题目:洛谷 P16510 [GKS 2015 #C] gRanks
java·c语言·开发语言·c++·python·算法
flyinmind20 分钟前
Java环境与Android环境中使用QuickJS
java·开发语言·javascript·quickjs
不吃鱼的羊21 分钟前
DaVinci Developer自动连接
java·开发语言
farerboy27 分钟前
15-Java while 和 do...while循环
java·后端
在繁华处30 分钟前
Java从零到熟练(十二):Java与AI工具整合
java·人工智能·python
凯瑟琳.奥古斯特35 分钟前
力扣1235完整解法详解
java·开发语言·leetcode
quan_泉37 分钟前
DIDCTF 取证初学者
java·服务器·前端
i220818 Faiz Ul39 分钟前
民谣网站|基于Springboot的民谣网站管理系统(源码+数据库+文档)
java·数据库·spring boot·后端·论文·毕设·民谣网站