一、基本介绍:
1、JDK的元Annotation用于修饰其他Annotation
2、元注解本身作用不大,知道它是干嘛的即可
二、种类:
1、Retention//指定注解的作用范围,三种SOURCE,CLASS(类),RUNTIME(运行时)
(1)只能用于修饰一个Annotation定义,用于指定该Annotation可以保留多长时间,@Retention包含一个RetentionPolicy类型的成员变量,使用@Retention时必须为该value成员变量指定值:
@Retention的三种值:
1)RetentionPolicy.SOURCE:编译器使用后,直接丢弃这种策略的注解
2)RetentionPolicy.CLASS:编译器把注解记录在class文件中,当运行java程序时,JVM不会保留注解,这是默认值
3)RetentionPolicy.RUNTIME:编译器把注释记录在class文件中,当运行java程序时,JVM会保留注解,程序可以通过反射获取该注解
2、Target//指定注解可以在哪些地方使用
(1)用于修饰Annotation定义,用于指定被修饰的Annotation能用于修饰哪些程序元素,@Target也包含一个名为value的成员变量
3、Documented//指定该注解是否会在javadoc体现
(1)用于指定被该元Annotation修饰的Annotation类将被javadoc工具提取成文档,即在生成文档时,可以看到该注解
说明:定义为Documented的注解必须设置Retention值为RUNTIME
4、Inherited//子类会继承父类注解
(1)被它修饰的Annotation将具有继承性,如果某个类使用了被@Inherited修饰的Annotation,则其子类将自动具有该注解,
说明:实际应用较少,了解即可