java的元注解 @Target @Retention

默认分类 · 2021-09-04

元注解,是对注解进行注解,用于规范注解,比如自定义了一个注解,可能需要使用元注解

@Target

用于说明一个注解的作用目标,比如是作用在方法、字段、方法参数、构造函数、类上、还是包上
示例:@Target({TYPE,FIELDMETHOD,PARAMETER,CONSTRUCTOR,LOCAL_VARIABLE})

@Retention

用于说明一个注解的作用范围,比如是在源文件、字节码文件、还是运行时有效
示例:@Rentention(RetentionPolicy.SOURCE)
以上示例表示,该注解只被保留在源文件阶段,编译为字节码后将被丢弃
@Rentention的三个参数(或者说生命周期)

  • RetentionPolicy.SOURCE 只在源码阶段存活
  • RententionPolicy.CLASS 可以在源码和字节码阶段存活( 默认级别 )
  • RententionPolicy.RUNTIME 源码(.java)、字节码(.class)、以及被JVM加载到内存 都是存活的
java
Theme Jasmine by Kent Liao