@Retention注解 【rɪˈtenʃn】
@Retention注解是一个Java注解,用于修饰注解,表示注解的生命周期1。
它是一个元注解,作用是设置注解的生命周期,生命周期的长短取决于@Retention的属性RetentionPolicy指定的值1。
@Retention注解传入的是RetentionPolicy枚举,该枚举有三个常量,分别是SOURCE、CLASS和RUNTIME1。
- SOURCE:代表着注解仅保留在源级别中,编译器将Java文件编译成class文件时将之遗弃。
- CLASS:代表着注解被保留在class文件中,JVM加载class文件时将之遗弃。
- RUNTIME:代表着标记的注解会由JVM保留,因此运行时环境可以使用它。
一般来说,自定义的注解都是RUNTIME级别的,因为大多数情况是根据运行时环境去做一些处理。