注解的生命周期

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 
相关推荐
ok_hahaha几秒前
java从头开始-黑马点评-商户查询缓存
java·spring·缓存
LINgZone214 分钟前
Java Mock 测试框架 Mockito
java·windows·microsoft
SWAGGY..24 分钟前
【C++初阶】:(5)内存管理
java·c++·算法
XiYang-DING30 分钟前
【Java SE】包装类(Wrapper Class)
java·开发语言
麦兜顶当当32 分钟前
subprocess与子进程交互
java·开发语言·jvm
等风来Boy39 分钟前
JAVA集成CAS客户端总结
java·cas
青槿吖43 分钟前
第二篇:Spring Boot进阶:整合异常处理、测试、多环境与日志,开发稳得一批!
java·spring boot·后端·spring·面试·sqlserver·状态模式
星如雨グッ!(๑•̀ㅂ•́)و✧1 小时前
Spring WebFlux 中的并发
java·spring·oracle
東雪木1 小时前
java学习—— 8 种基本数据类型 vs 包装类、自动装箱 / 拆箱底层原理
java·开发语言·java面试
Lyyaoo.1 小时前
【JAVA基础面经】JVM、JRE、JDK
java·开发语言·jvm