注解的生命周期

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 
相关推荐
期待のcode1 分钟前
Java String类
java·开发语言
资生算法程序员_畅想家_剑魔1 分钟前
Java常见技术分享-17-多线程安全-并发编程的核心问题的解决方案
java·开发语言
p&f°3 分钟前
垃圾回收两种算法
java·jvm·算法
myq993 分钟前
第三章:Java异常处理
java·开发语言·笔记
靠沿9 分钟前
Java数据结构初阶——堆与PriorityQueue
java·开发语言·数据结构
禾叙_12 分钟前
HashMap
java·数据结构·哈希算法
SadSunset26 分钟前
(44)Spring6集成MyBatis3.5(了解即可,大部分用springboot)
java·spring boot·后端
LYOBOYI12333 分钟前
qt的事件传播机制
java·前端·qt
短剑重铸之日43 分钟前
《深入解析JVM》第四章:JVM 调优
java·jvm·后端·面试·架构
whltaoin44 分钟前
25年12月26日-福州某科技公司一面面试原题
java·linux·docker·面试·职场和发展·k8s·springboot