元注解包括:@Documented、@Target、@Retention、@Inherited、@Repeatable和@Native。
元注解是 为其他注解进行说明的注解,当自定义一个新的注解类型时,其中可以使用元注解。
@Documented
如果在一个自定义注解中引用@Documented注解,那么该注解可以修饰代码元素(类、接口、 成员变量和成员方法等),javadoc等工具可以提取这些注解信息。
@Target
@Target注解用来指定一个新注解的适用目标。@Target注解有一个成员(value)用来设置适用 目标,value是java.lang.annotation.ElementType枚举类型的数组,ElementType描述Java程序元素 类型,它有10个枚举常量,如表所示。
@Retention
@Retention注解用来指定一个新注解的有效范围,@Retention注解有一个成员(value)用来设 置保留策略,value是java.lang.annotation.RetentionPolicy枚举类型,RetentionPolicy描述注解保留 策略,它有3个枚举常量,如表所示。
@Inherited
@Inherited注解用来指定一个新注解可以被继承。假定一个类A被该新注解修饰,那么这个A类 的子类会继承该新注解。
@Repeatable
@Repeatable注解是Java 8新增加的,它允许在相同的程序元素中重复注释,可重复的注释必须 使用@Repeatable进行注释。
@Native
@Native注解一个成员变量,指示这个变量可以被本地代码引用。常常被代码生成工具使用。