Как добавить дополнительные атрибуты для валидатора в JSR 303? - PullRequest
0 голосов
/ 29 февраля 2012

При написании своей пользовательской аннотации и валидатора я столкнулся с проблемой:

Мой код для аннотации:

@Documented
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = NumericValidator.class)
public @interface Numeric {

    String message() default "{constraint.postcode}";

    Class<?>[] groups() default {};

    Class<? extends Payload>[] payload() default {};

    int digitCount();
}

Так что, как вы можете видеть, мне нужен дополнительный параметр "digitCount".Но этот параметр не является обязательным, поэтому я могу использовать валидацию без него, но в соответствии с этой аннотацией я все равно должен его указать.Я хотел бы предоставить некоторое значение по умолчанию для этого параметра, и на самом деле я не знаю, как это сделать.

1 Ответ

0 голосов
/ 01 марта 2012

Просто укажите магическое число по умолчанию и игнорируйте любые аннотации с магическим номером. Я использовал -1 в качестве магического числа в этом примере:

@Documented
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = NumericValidator.class)
public @interface Numeric {

    String message() default "{constraint.postcode}";

    Class<?>[] groups() default {};

    Class<? extends Payload>[] payload() default {};

    int digitCount() default -1;
}
...