为允许多个值的休眠验证器提供值

che*_*koo 3 java hibernate-validator

我有一个Hibernate验证器,它根据给定的字符串列表验证字段.我会把代码放在更清晰的位置.

    @Target({ METHOD, FIELD, ANNOTATION_TYPE })
    @Retention(RUNTIME)
    @Constraint(validatedBy = AllowedValuesValidator.class)
    @Documented
    public @interface AllowedValues {
      ...
      String[] value();
    }
Run Code Online (Sandbox Code Playgroud)

以前我们用它作为

  @AllowedValues("value1")
  private String method;
Run Code Online (Sandbox Code Playgroud)

现在我们需要将它用于一系列值,方法可以有多个值.我试过两个:

  @AllowedValues("Standard", "One-Day", "Two-Day", "Three-Day")
  private String method;     
Run Code Online (Sandbox Code Playgroud)

  @AllowedValues("Standard, One-Day, Two-Day, Three-Day")
  private String method;
Run Code Online (Sandbox Code Playgroud)

第一个不编译,第二个将整个字符串作为允许值(这很明显).

任何想法如何在这里指定多个值?

axt*_*avt 6

因为它是a String[],所以需要对多个值使用数组初始化器语法:

@AllowedValues({"Standard", "One-Day", "Two-Day", "Three-Day"}) 
Run Code Online (Sandbox Code Playgroud)