使用 @interface 定义注解,格式如下:
其中 default 可以指定一个默认值,value 应该用于指定常用的参数,因为省略参数名时 默认使用 value
元注解
用来设置你所定义的注解的属性
Target(必须)
最常用的元注解是 @Target。使用 @Target 可以定义 Annotation 能够被应用于源码的哪些位置:
类或接口:ElementType.TYPE; 字段:ElementType.FIELD; 方法:ElementType.METHOD; 构造方法:ElementType.CONSTRUCTOR; 方法参数:ElementType.PARAMETER。
Retention(必须)
@Retention 定义 Annotation 的生命周期:
仅编译期:RetentionPolicy.SOURCE; 仅 class 文件:RetentionPolicy.CLASS; 运行期:RetentionPolicy.RUNTIME。
Repeatable(不常用)
使用 @Repeatable 这个元注解可以定义 Annotation 是否可重复
Inherited
使用 @Inherited 定义子类是否可继承父类定义的 Annotation