注解的生命周期

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 
相关推荐
会编程的吕洞宾32 分钟前
Java Set集合:你的数据去重神器
java·后端·程序员
q***656938 分钟前
Spring Data 什么是Spring Data 理解
java·后端·spring
WYS@不忘初心41 分钟前
在Eclipse IDE for Embedded C/C++ Developers软件中定义的宏,编译C源文件时编译器无法找到宏定义!
java·ide·eclipse
q***31891 小时前
Spring Framework 中文官方文档
java·后端·spring
q***46521 小时前
Spring Boot(七):Swagger 接口文档
java·spring boot·后端
Halo_tjn2 小时前
Java 基于分支和循环结构的专项实验
java·开发语言·计算机
洛_尘2 小时前
Java EE进阶5:Spring IoC&DI
java·spring·java-ee
IT小哥哥呀2 小时前
Spring Cloud Stream:一次编写,随处运行
java·spring cloud·微服务··后端开发
Kuo-Teng2 小时前
LeetCode 141. Linked List Cycle
java·算法·leetcode·链表·职场和发展
洛_尘2 小时前
数据结构--9:反射、枚举以及lambda表达式(了解即可)
java·开发语言·数据结构