Java注解
文章目录
元注解
元注解的作用就是 注解其他注解 ,Java5.0定义了以下4个标准元注解,它们被用来对其他注解类型作说明:
- @Target
- @Retention
- @Documented
- @Inherited
@Target
@Target说明了注解所修饰的对象范围,使用@Target可以更加明确其修饰的目标。其取值(ElementType)有如下:
- CONSTRUCTOR:用于描述构造器。
- FIELD:用于描述域。
- LOCAL_VARIABLE:用于描述局部变量。
- METHOD:用于描述方法。
- PACKAGE:用于描述包。
- PARAMETER:用于描述参数。
- TYPE:用于描述类、接口(包括注解类型)或enum声明。
@Retention
@Retention定义了该注解被保留的时间长短,可以对注解的“生命周期”限制。 表示需要在什么级别保留该注释信息,用于描述注解的生命周期(被描述的注解在什么范围内有效) ,其取值(唯一取值)有如下:
- SOURCE:在源文件中有效(源文件保留)
- CLASS:在class文件有效(class保留)
- RUNTIME:在运行时有效(运行时保留)
@Documented
@Documented表明这个注解应该被javadoc工具记录。默认javadoc是不包括注解的,但是如果声明注解的时候指定了@Documented,那么它会被javadoc工具处理。 是一个标记注解,没有成员。
@Inherited
@Inherited也是一个标记注解,没有成员。描述某个被注解的类型是被继承的。
如果一个使用了@Inherited修饰的annotation类型被用于一个class,则这个annotation将被用于该class的子类。
注意 :@Inherited annotation类型是被标注过的class的子类所继承。类并不从它所实现的接口继承annotation,方法并不从它所重载的方法继承annotation。
自定义注解
- 使用@interface自定义注解时,自动继承java.lang.annotation.Annocation接口,由编译程序自动完成其他细节。
- 定义自定义注解时,不能继承其他注解或接口。
- 自定义注解中的每一个方法实际上是声明一个配置参数,方法名就是参数的名称,返回值类型就是参数的类型。可以通过default来声明参数的默认值。
- 参数类型只能是:基本数据类似、String类型、Class类型、enum类型、Annotation类型以及上述所有类型的数组。
- 自定义注解的格式:public @interface 注解名 {定义体}
文章作者 P1n93r
上次更新 2021-01-01