说明:介绍各种元注解的作用
@Documented
- 作用:指示使用此注解的元素(类、方法、字段等)应当被 javadoc 工具记录。
- 详细说明:通常注解不会出现在生成的 API 文档中,但如果注解使用了
@Documented
,那么该注解将包含在 javadoc 中。这样可以使开发者在阅读文档时看到注解的存在以及其相关信息。
应用:
@Documented
@Retention
-
作用:指定注解的保留策略。
-
详细说明:
RetentionPolicy
枚举有三个值:RetentionPolicy.SOURCE
:注解只在源代码中存在,编译时会被丢弃。RetentionPolicy.CLASS
:注解在编译后的字节码文件中存在,但运行时不会保留(默认值)。RetentionPolicy.RUNTIME
:注解在运行时保留,因此可以通过反射机制读取。
应用:
@Retention(RetentionPolicy.RUNTIME)
@Retention(RetentionPolicy.RUNTIME)
表示这个注解将保留到运行时,可以通过反射来访问它。
@Target
- 作用:指定注解可以应用的 Java 元素。
- 详细说明:
ElementType
枚举有以下几个值:ElementType.TYPE
: 可以应用于类、接口(包括注解类型)或枚举声明。ElementType.FIELD
:可以应用于字段或属性。ElementType.METHOD
:可以应用于方法。ElementType.PARAMETER
:可以应用于参数。ElementType.CONSTRUCTOR
:可以应用于构造函数。ElementType.LOCAL_VARIABLE
:可以应用于局部变量。ElementType.ANNOTATION_TYPE
:可以应用于注解类型。ElementType.PACKAGE
:可以应用于包声明。ElementType.TYPE_PARAMETER
:可以应用于类型参数。ElementType.TYPE_USE
:可以应用于类型的使用。
应用:
@Target(ElementType.TYPE)
@Target(ElementType.TYPE)
表示这个注解只能应用于类、接口、枚举和注解类型。