@Person(personName="李四",personAge=11)
@Person(personName="王五")
@Person(personAge=12)
public class Test {
static ThreadLocal<String> threadLocal = new ThreadLocal<>();
public static void main(String[] args) {
Person[] person = Test.class.getAnnotationsByType(Person.class);
Arrays.asList(person).stream().forEach((p)->{System.out.println(p.personName() + p.personAge());});
}
}
@Repeatable(Persons.class)
@Retention(RetentionPolicy.RUNTIME)
public @interface Person {
String personName() default "张三";
int personAge() default 10;
}
@Retention(RetentionPolicy.RUNTIME)
public @interface Persons {
Person[] value();
}
这段代码在gethib上的为author和book,我自己敲了一下,重点在于@Repeatable(Persons.class)这句代码,当在Test上重复注解同一个类型的注解时,需要新建另一个注解,里面包含了一个需重复注解的注解类的数组且该数组的名字必须为value,在main中可以通过反射获得此注解的数组