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