自定义注解定义配置注解整合说明
@Target 注解用来规定注解的作用目标
@Target 的参数可以是单个参数也可以是一个数组,如下都是可以的:
@Target(ElementType.FIELD)
@Target({ElementType.FIELD,ElementType.METHOD})
其参数可选项如下:
如上可以指定注解的作用目标,还需要指定注解的保留策略
@Retention 用于指定注解的保留策略,可有三种选择 如下:
- @Retention(RetentionPolicy.SOURCE) 表示注解只会存在于编写的源码中,编译后的class文件中不会保留
- @Retention(RetentionPolicy.CLASS) 表示注解会保留到编译后的class文件中,但在运行时失效
- @Retention(RetentionPolicy.RUNTIME) 表示注解会一直保留到代码运行时,在运行时生效
子类实现继承父类配置的注解:
@Inherited 自定义注解添加此注解可以实现注解类继承父类的注解。
注:此注解只有在自定义注解的作用目标为ElementType.TYPE才有用。
如下:父类Sup配置了自定义注解@CoLen,子类Sub继承了父类,同时会继承父类配置的注解
@Inherited
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
public @interface CoLen {
}
@CoLen
public class Sup {
}
public class Sub extends Sup {
}
@Documented 配置了此注解,代表着此注解会被javadoc工具提取成文档,添加了此注解会在对应的javadoc中生成对应的说明信息。自定义注解中可用可不用。