注解的生命周期

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 
相关推荐
geovindu4 分钟前
java: Memento Pattern
java·开发语言·后端·备忘录模式·行为模式
xcLeigh9 分钟前
Unity基础:Start与Update方法——Unity脚本生命周期初探
java·unity·游戏引擎·教程
zephyr0511 分钟前
链表实现O(n log n)时间复杂度的排序——归并排序详解
java·数据结构·算法
Zane199412 分钟前
JRE 去哪了?一次讲清楚 JDK、JRE、JVM 到底是什么关系?
java·后端
PPPPickup17 分钟前
基础知识差缺补漏-面试版持续更新
java·开发语言
深入云栈23 分钟前
Nacos 2.x 源码深度解析 (二):通信协议迭代 —— HTTP长轮询到gRPC演进
java
andongni20342 分钟前
SpringBoot 入门实验报告
java·spring boot·后端
黄鸭部落格ShiYuYuanFang43 分钟前
【分享】软考每日一练与解析-计组 8/12
java·开发语言
XWalnut1 小时前
LeetCode刷题 day37
java·数据结构·算法·leetcode
huaweichenai1 小时前
使用maven搭建sprint-boot
java·maven·sprint