@Target
用于描述注解的使用范围,即被描述的注解可以用在什么地方,有以下几个取值:
-
ElementType.Type:类、接口(包括注释类型)或枚举声明
-
ElementType.FIELD:字段声明(包括枚举常量)
-
ElementType.METHOD:方法声明
-
ElementType.PARAMETER:正式的参数声明?
-
ElementType.CONSTRUCTOR:构造函数声明
-
ElementType.LOCAL_VARIABLE:局部变量声明
-
ElementType.ANNOTATION_TYPE:注释类型声明?
-
ElementType.PACKAGE:包声明
-
ElementType.TYPE_PARAMETER:类型参数声明?
-
ElementType.TYPE_USE:类型的使用?
@Retention
用于描述注解的生命周期,存活多久,有以下几个取值:
- SOURCE:在源文件中有效
- CLASS:在源文件、.class文件中保留
- RUNTIME:在运行时有效
@Documented
标记注解,标记Documented后javadoc中会生成注解的文档说明
@Inherited:子类可继承父类的注解,可通过反射获取到父类的注解
~~~元注解end~~~
@Override