इंटरफेस एनोटेशन मैं कोड का निम्न भाग करवाते हैं ठोकर खाई के साथ काम करते हुए (यह हाइबरनेट @NotNull एनोटेशन है):डिफ़ॉल्ट जावा में विधि वापसी मान
@Target(value = {ElementType.METHOD, ElementType.FIELD, ElementType.ANNOTATION_TYPE, ElementType.CONSTRUCTOR, ElementType.PARAMETER})
@Retention(value = RetentionPolicy.RUNTIME)
@Documented
@Constraint(validatedBy = {})
public @interface NotNull {
@Target(value = {ElementType.METHOD, ElementType.FIELD, ElementType.ANNOTATION_TYPE, ElementType.CONSTRUCTOR, ElementType.PARAMETER})
@Retention(value = RetentionPolicy.RUNTIME)
@Documented
public @interface List {
public NotNull[] value();
}
public String message() default "{javax.validation.constraints.NotNull.message}";
public Class<?>[] groups() default {};
public Class<? extends Payload>[] payload() default {};
}
मैं default
कीवर्ड के बारे में सोच रहा था/विधि में निर्माण परिभाषा, जिसे मैंने पहले कभी नहीं देखा है। जैसा कि मैंने समझा, यह आपको इस विधि (या एनोटेशन प्रॉपर्टी) के लिए डिफ़ॉल्ट मान परिभाषित करने देता है।
अब मैं इस निर्माण को सामान्य इंटरफेस पर लागू करने की कोशिश कर रहा था, लेकिन यह असफल रहा। इस संकलन विफल हो जाएगा:
public interface DefaultTest {
public String test() default "value";
}
लेकिन यह काम करेगा:
public @interface DefaultTest {
public String test() default "value";
}
तो मेरे सवाल है: default
कीवर्ड एनोटेशन विशेष है? और यदि हां, सामान्य इंटरफेस परिभाषाओं में इस निर्माण का उपयोग करने के खिलाफ क्या बोलता है?
एकाधिक इंटरफ़ेस विरासत सही समझ में आता है। इस पर ध्यान दिलाने के लिए धन्यवाद। – MicSim
बाहर निकलता है कि आप वास्तव में प्रामाणिक थे। जावा 8 अब आपको वही करने देता है जो आप चाहते हैं! मैंने अपना जवाब अपडेट कर लिया है। – Pace