我有一个Hibernate验证器,它根据给定的字符串列表验证字段。我会把代码放在更清晰的位置。
@Target({ METHOD, FIELD, ANNOTATION_TYPE })
@Retention(RUNTIME)
@Constraint(validatedBy = AllowedValuesValidator.class)
@Documented
public @interface AllowedValues {
...
String[] value();
}
以前我们用它作为
@AllowedValues("value1")
private String method;
现在我们需要将它用于一系列值,方法可以有多个值。我试过了两个:
@AllowedValues("Standard", "One-Day", "Two-Day", "Three-Day")
private String method;
和
@AllowedValues("Standard, One-Day, Two-Day, Three-Day")
private String method;
第一个不编译,第二个将整个字符串作为允许值(很明显)。
如何在这里指定多个值?
答案 0 :(得分:6)
由于它是String[]
,您需要对多个值使用数组初始值设定语法:
@AllowedValues({"Standard", "One-Day", "Two-Day", "Three-Day"})