定义注解
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Repeatable(ShowMessage.ShowMessages.class)
public @interface ShowMessage {
String message() default "hello";
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@interface ShowMessages {
ShowMessage[] value();
}
}
详细解释
元注解
@Target用于定义注解能在什么地方被使用@Rentention用于定义注解的生命周期,自定义注解一般为RetentionPolicy.RUNTIME,运行时仍然存在@Repeatable语法糖,指明注解可重复在一个地方被使用
定义注解的属性
使用类似无参方法的写法,可使用default在后面定义默认值
参考文档
PREVIOUSJava枚举类