【发布时间】:2018-09-28 09:27:10
【问题描述】:
我正在开发一个自定义 Validation Annotation ,并且注释需要是可重复的。
"Min.List"可以满足需求,我自己的注解也做了同样的事情。
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Constraint(validatedBy = ComboValidator.class)
public @interface Combo {
String dependField();
String controlledField();
Class<? extends Releation> relation() default BaseReleation.class;
String message() default "{combo validation}";
Class<?>[] groups() default { };
Class<? extends Payload>[] payload() default {};
/**
* Defines several {@link Combo} annotations on the same element.
*
* @see Combo
*/
@Target({ ElementType.TYPE })
@Retention(RetentionPolicy.RUNTIME)
@Documented
@interface List {
Combo[] value();
}
}
有效。
在我看来,验证器将为需要验证的不同类型创建不同的实例。所以在验证器中,我可以从注释中获取数据并将其存储在类型级别的字段中。但是在可重复注释的情况下,我注意到创建了多个实例。
所以我的问题是@interface 列表的含义和工作原理是什么?
【问题讨论】:
-
我对用法做了一些研究,但一无所获。如果您可以发布有关使用情况的信息,这也很有帮助。谢谢