元注解
· 阅读需 3 分钟
元注解
元注解是定义注解的注解,有限的几个注解:
注解 | 说明 |
---|---|
@Target | 表明该注解可以使用的范围 |
@Retention | 是注解类,实现声明类 Class,声明类别 Category,声明扩展 Extension |
@Inherited | 声明使用该注解的类会默认继承此注解 |
@Documented | 表明这个注释是由 Javadoc 记录的 |
@Target
该注解的作用是告诉 Java 将自定义的注解放在什么地方,比如类、方法、构造器、变量上等。它的值是一个枚举类型,有如下属性值。
ElementType.CONSTRUCTOR
:用于描述构造器。ElementType.FIELD
:用于描述成员变量、对象、属性(包括enum
实例)。ElementType.LOCAL_VARIABLE
:用于描述局部变量。ElementType.METHOD
:用于描述方法。ElementType.PACKAGE
:用于描述包。ElementType.PARAMETER
:用于描述参数。ElementType.TYPE
:用于描述类、接口(包括注解类型)或enum
声明。
@Retention
该注解用于说明自定义注解的生命周期,在注解中有三个生命周期。
RetentionPolicy.RUNTIME
:始终不会丢弃,运行期也保留该注解,可以使用反射机制读取该注解的信息。自定义的注解通常使用这种方式。RetentionPolicy.CLASS
:类加载时丢弃,默认使用这种方式。RetentionPolicy.SOURCE
:编译阶段丢弃,自定义注解在编译结束之后就不再有意义,所以它们不会写入字节码。@Override
、@SuppressWarnings
都属于这类注解。
@Inherited
该注解是一个标记注解,表明被标注的类型是可以被继承的。如果一个使用了 @Inherited
修饰的 Annotation 类型被用于一个 Class,则这个 Annotation 将被用于该 Class 的子类。
@Documented
该注解表示是否将注解信息添加在 Java 文档中。