Domanda

Ho un validatore di ibernazione che convalida un campo contro un determinato elenco di stringhe.Metterò il codice per una migliore chiarezza.

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

In precedenza lo stavamo usando come

  @AllowedValues("value1")
  private String method;
.

Ora dobbiamo usarlo per una gamma di valori, il metodo può avere più valori.Ho provato entrambi:

  @AllowedValues("Standard", "One-Day", "Two-Day", "Three-Day")
  private String method;     
.

e

  @AllowedValues("Standard, One-Day, Two-Day, Three-Day")
  private String method;
.

Primo non si compila e il secondo richiede una stringa intera come valore consentito (che è ovvio).

Qualche idea come specificare più valori qui?

È stato utile?

Soluzione

Since it's a String[], you need to use array initializer syntax for multiple values:

@AllowedValues({"Standard", "One-Day", "Two-Day", "Three-Day"}) 
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top