2011-08-15 24 views
29

जावा, एनोटेशन में मूल्यों की परिभाषा की अनुमति देता है, उदाहरण के लिए:क्या जावा एनोटेशन का मान अनिवार्य बनाना संभव है?

public @interface MyAnnotation { 
    int MyValue(); 
} 

हालांकि यह MyValue टिप्पणी के लिए डिफ़ॉल्ट मान सेट करने के लिए संभव है, मैं सोच रहा था कि क्या यह यह अनिवार्य बनाने के लिए संभव है। मेरा मतलब है कि किसी वर्ग या फ़ील्ड को एनोटेट करते समय उपयोगकर्ता को MyValue के लिए मूल्य प्रदान करने के लिए मजबूर करना पड़ता है।

मैं प्रलेखन के माध्यम से गया लेकिन कुछ भी नहीं मिला। क्या किसी के पास इस मुद्दे का समाधान है या क्या एनोटेशन के मूल्य को अनिवार्य बनाना असंभव है?

उत्तर

53

यदि आप डिफ़ॉल्ट मान निर्दिष्ट नहीं करते हैं, तो यह अनिवार्य है।

annotation MyAnnotation is missing MyValue

+1

मुझे यह कैसे याद आया, धन्यवाद! – JVerstry

4

को देखते हुए

public @interface MyAnnotation { 
    int MyValue(); 
} 

एक वर्ग

@MyAnnotation 
public class MyClass { 

} 

एक मूल्य के बाहर के साथ एक संकलन त्रुटि हो जाएगा: अपने उदाहरण MyValue विशेषता का उपयोग कर के बिना अपनी एनोटेशन का उपयोग कर के लिए इस संकलक त्रुटि उत्पन्न करता है।

1

मैंने यह कोशिश नहीं की है, लेकिन यदि आप मूल्यों को एक विशिष्ट मूल्य पर मजबूर करना चाहते हैं तो शायद एक प्रकार का enum बनाते हैं।

public @interface MyAnnotation { 
    Status status(); 
} 

जहां स्थिति एक enum है।

संबंधित मुद्दे