注解的生命周期

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 
相关推荐
科威舟的代码笔记1 分钟前
第10讲:Stream实战与陷阱——综合案例与最佳实践
java·开发语言
程序定小飞18 分钟前
基于springboot的体育馆使用预约平台的设计与实现
java·开发语言·spring boot·后端·spring
5***790027 分钟前
Java虚拟现实开发
java·开发语言·vr
计算机毕业设计小途27 分钟前
计算机毕业设计推荐:基于SpringBoot的水产养殖管理系统【Java+spring boot+MySQL、Java项目、Java毕设、Java项目定制定做】
java·spring boot·mysql
养乐多072234 分钟前
【Java】异常
java·开发语言
2***574236 分钟前
Java数据分析实战
java·python·数据分析
T***u33342 分钟前
Java机器学习框架
java·开发语言·机器学习
程序员-周李斌1 小时前
Java SPI(JDK 内置服务发现机制)
java·开发语言·开源软件
爱吃西瓜的小菜鸡1 小时前
【Java】面向对象基础——继承 + 封装基础题
java·开发语言
G***66912 小时前
Java区块链开发
java·开发语言·区块链