学习自定义注解之前,我们有必要了解一下java为我们所提供的元注解以及定义注解的相关语法。
java为我们提供的元注解一共有4个:
1.@Target
2.@Retention
3.@Documented
4.@Inherited
这些注解类型可以在java.lang.annotation下找到。下面是介绍
1.@Target
说明Annotation所修饰的对象的范围,有以下几个取值(ElementType)
CONSTRUCTOR:用于描述构造器
FIELD:用于描述域
LOCAL_VARIABLE:用于描述局部变量
METHOD:用于描述方法
PACKAGE:用于描述包
TYPE:用于描述类、接口、eum声明
2.@RETENTION
说明注解的生命周期,取值(RetentionPolicy)有
SOURCE:表示只在源文件中有效
CLASS:表示在编译后的class文件中依然保留
RUNTIME:表示在运行时有效
3.@Ducmented
用于描述其它类型的annotation应该被作为被标注的程序成员的公共API,因此可以被例如javadoc此类的工具文档化。Documented是一个标记注解,没有成员。
4.@Inherited
用于描述该注解会被子类所继承