注解的生命周期

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 
相关推荐
海寻山13 小时前
Java枚举(Enum):基础语法+高级用法+实战场景+面试避坑
java·开发语言·面试
鱼鳞_13 小时前
Java学习笔记_Day31(IO流)
java·笔记·学习
石榴树下的七彩鱼13 小时前
身份证 OCR 识别 API 接入详解(Python / Java 示例)
java·开发语言·人工智能·后端·python·ocr·api
云烟成雨TD13 小时前
Spring AI Alibaba 1.x 系列【16】异步工具核心组件与执行流程
java·人工智能·spring
t***54413 小时前
这些设计模式在现代C++中如何应用
java·c++·设计模式
t***54413 小时前
能否给出更多现代C++架构设计模式?
java·开发语言·c++
それども13 小时前
Spring Boot 切面无法切进来的原因
java·spring·dubbo
随风,奔跑13 小时前
Spring Cloud Alibaba学习笔记(一)
java·后端·spring cloud
無限進步D13 小时前
Java 基础算法训练
java·开发语言·算法·入门
map1e_zjc13 小时前
Java SpringBoot学习记录(4)
java·开发语言·学习