ओवरराइड कर सकते हैं मैं नीचे की तरह एक परीक्षण है:मैं एक 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
अधिरोहित जा सकता है, और कोई चेतावनी नहीं दिखाई देगी।
क्या इसे पूरा करने का कोई तरीका है?
संपादित करें: मुझे bug मिला है, लेकिन मैं 4.2.0 फ़ाइनल चलाता हूं और अभी भी उपर्युक्त व्यवहार प्राप्त करता हूं।
नहीं , मैं डिफ़ॉल्ट सत्यापनकर्ता का उपयोग करना चाहता हूं, लेकिन एनोटेशन को ओवरराइड करना चाहता हूं। – oshai
क्षमा करें, अब मैं देखता हूं कि आपका क्या मतलब है। मैंने अपना जवाब संपादित कर लिया है। –
धन्यवाद, कोड में ऐसा करने का कोई तरीका है? – oshai