元注解用于注解其他注解。
1. @Target注解。指定注解的作用域。用法为@Target(ElementType.Method)。
ElementType的枚举值有:
CONSTRUCTOR: 描述构造器
FIELD: 描述成员变量
LOCAL_VARIABLE: 描述局部变量
METHOD: 描述方法
PACKAGE: 描述包
PARAMETER: 描述参数
TYPE: 描述类、接口(包括注解类型) 或enum声明
2. @Retention注解。指定注解的作用时期。用法为@Retention(RetentionPolicy.RUNTIME)。
RetentionPolicy的枚举值有:
SOURCE: 在源文件中有效(即源文件保留)
CLASS: 在class文件中有效(即class保留)
RUNTIME: 在运行时有效(即运行时保留)
3. @Documented注解。指定被定义注解是否被java-doc收录(java-doc默认是不收录注解的)。
4. @Inherited注解。指定被定义注解是否会被子类继承(接口继承,以及接口实现类无效)。
5. @Repeatable注解。指定被定义注解能够重复注解目标对象。