重复注解
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface MyTag {
String name() default "勇敢牛牛";
int age() default 21;
}
public class MyInfo {
@MyTag
@MyTag(name = "hb", age = 23)
public void info() {
System.out.println("yyds");
}
}
java 8 之前不允许使用重复注解,(java 8以前必须使用容器修饰)
定义容器
@Documented
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface MyTags {
MyTag[] value();
}
并在 MyTag 上加 @Repeatable(MyTags.class)
@Documented
@Repeatable(MyTags.class)
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface MyTag {
String name() default "勇敢牛牛";
int age() default 21;
}
容器在 java 8 以前的做法就不提了,已经过去式了。现在只是简化了以前的做法,本质还是一样的。