注解的生命周期

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 分钟前
Servlet 过滤器(Filter)
java·servlet
wangchunting8 分钟前
Jvm-垃圾回收算法
java·jvm·算法
Java面试题总结10 分钟前
新人笔记之模板方法模式
java·笔记·模板方法模式
NGC_661112 分钟前
深入理解 Java 线程池:从原理到实战
java·开发语言·python
人道领域14 分钟前
Day | 10【苍穹外卖:SpringTask 和WebSocket 案例】
java·数据库·后端
白宇横流学长14 分钟前
基于SpringMVC 的景区智能客流预测系统设计与实现
java
1104.北光c°15 分钟前
Leetcode206.反转链表 迭代+递归 【hot100算法个人笔记】【java写法】
java·数据结构·笔记·算法·leetcode·链表·反转链表
MegaDataFlowers16 分钟前
静态/动态代理模式
java·开发语言·代理模式
编程学习00123 分钟前
记一次Java面试
java·面试
计算机学姐26 分钟前
基于SpringBoot+Vue的家政服务预约系统【个性化推荐+数据可视化】
java·vue.js·spring boot·后端·mysql·信息可视化·java-ee