注解的生命周期

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 
相关推荐
秋野酱2 分钟前
Spring Boot 项目的计算机专业论文参考文献
java·spring boot·后端
士别三日&&当刮目相看10 分钟前
数据结构*优先级队列(堆)
java·数据结构
香饽饽~、14 分钟前
【第二篇】 初步解析Spring Boot
java·spring boot·后端
坎布里奇25 分钟前
java -jar命令运行 jar包时如何运行外部依赖jar包
java·pycharm·jar
冷yan~36 分钟前
GitHub文档加载器设计与实现
java·人工智能·spring·ai·github·ai编程
CodeBlossom41 分钟前
java加强 -stream流
java·windows·python
理想奋斗中1 小时前
idea中Lombok失效的解决方案
java·intellij-idea·lombok
保利九里1 小时前
java中的方法详解
java·开发语言·python
旋风菠萝1 小时前
项目复习(1)
java·数据库·八股·八股文·复习·项目、