一般情况下同一个注解在一个属性上使用,编译都过不了,如下图所示。
解决方案
新建一个注解
import java.lang.annotation.*;
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
@documented
public @interface Annotations {
ConditionalValidateField[] value();
}
引用刚才的注解
@Repeatable(Annotations.class)
public @interface ConditionalValidateField {
...省略...
}
这样子就不报错了
这个属性用反射会得到多个注解,也可以直接用Spring的方法AnnotationUtils.getRepeatableAnnotations(注意5.2版本是过时的)



