मैं जावा में कुछ समय या अंत उपयोगकर्ता के रूप में एनोटेशन का उपयोग कर रहा हूं लेकिन हाल ही में मैंने अपने स्वयं के एनोटेशन प्रकार बनाने का फैसला किया है और मुझे जावा में एनोटेशंस के साथ एनोटफेस को परिभाषित करने के लिए सिंटैक्स मिल गया है, जो बहुत अजीब है। मेरा सवाल यह है कि जावा ने एंटर के लिए किए गए एक नए कीवर्ड को शुरू करने के बजाय एनोटफेस को परिभाषित करने के लिए @interface का उपयोग क्यों किया? क्या @interface वाक्यविन्यास का कुछ फायदा है जो मुझे याद आ रही है?@interface एनोटेशन को परिभाषित करने के लिए क्यों उपयोग किया जाता है?
मैं डिजाइन विचारों को समझने के लिए कह रहा हूं कि एनोटेशन के डिजाइनरों के माध्यम से मुझे यकीन है कि उन्होंने एनोटेशन को परिभाषित करने के लिए एक नया कीवर्ड शुरू करने के विचार से खिलवाड़ किया होगा।
@interface में उदाहरण के लिए बहुत सारे प्रतिबंध हैं, आप विस्तार का उपयोग नहीं कर सकते हैं, ऐसे विशिष्ट प्रकार हैं जिनका उपयोग आप एनोटेशन सदस्य जैसे दिनांक को परिभाषित करते समय नहीं कर सकते। मुझे @interface में क्या स्पष्ट हो सकता है, इस पर प्रतिबंध मिलते हैं और यह मुझे हैक की तरह लगता है।
क्या आप कृपया इसका अर्थ बता सकते हैं कि आपके पास क्या मतलब है @ कंपाइलर एक विशेष तरीके से इसका व्यवहार नहीं करता है, जबकि स्पेक कहता है कि आप "इंटरफ़ेस" जैसे कुछ के साथ एनोटेशन प्रकार को परिभाषित कर सकते हैं। ऐसा लगता है कि एक खोजशब्द जैसा लगता है कि मेरे अपडेट किए गए प्रश्न को "क्यों नहीं" एकमात्र उपलब्ध उत्तर नहीं है – ams
@ माफ़ी माफ़ी, मैंने जावा व्याकरण की जांच की है, यह वास्तव में एक कीवर्ड है इसलिए मैंने अपना जवाब पूरी तरह से संशोधित कर दिया है। – EJP