У меня есть тест, как показано ниже:можно переопределить JSR-303 проверки аннотацию
public class TestSizeAnnotation
{
public static void main(String[] args)
{
System.out.println(
Validation.buildDefaultValidatorFactory().getValidator().validate(new C()));
}
public static class P
{
private List<String> lst = newArrayList("AA");
@Size(max=0, message="P")
public List<String> getLst()
{
return lst;
}
public void setLst(List<String> lst)
{
this.lst = lst;
}
}
public static class C extends P
{
@Override
@Size(max=5, message="C")
public List<String> getLst()
{
return super.getLst();
}
}
}
со следующим выходом:
[ConstraintViolationImpl{interpolatedMessage='P', propertyPath=lst, rootBeanClass=class com....validator.TestSizeAnnotation$C, messageTemplate='P'}]
Тем не менее, я ожидал, что аннотации могут @Size
быть переопределены, и никаких предупреждений не появится.
Есть ли способ сделать это?
EDIT: Я нашел bug, похоже, связано с этим, но я запустил 4.2.0 final и все еще получаю вышеуказанное поведение.
нет , Я хочу использовать валидатор по умолчанию, но переопределить аннотацию. – oshai
Извините, теперь я понимаю, что вы имеете в виду. Я отредактировал свой ответ. –
Спасибо, есть ли способ сделать это в коде? – oshai