2015-08-05 16 views
16

मुझे पता है कि दस्तावेज़ीकरण उद्देश्यों के लिए टिप्पणी में इसका क्या अर्थ है, लेकिन इसके बाहर इसका क्या अर्थ है? (मैं आमतौर पर बस इसे गूगल करता हूं लेकिन प्रत्येक गैर अक्षर प्रतीक परिणाम में दिखाई देता है)@ प्रतीक का मतलब क्या है?

+0

http://stackoverflow.com/questions/24221/java-annotations – fdsa

+0

http://stackoverflow.com/questions/19551022/the-symbol-in-java – edtheprogrammerguy

+0

संभावित डुप्लिकेट [कैसे एक अच्छा यूआरएल प्राप्त करने के लिए "http://stackoverflow.com/questions/1074/asp-mvc"](http://stackoverflow.com/questions/1227348/how-to-get-a-nice-url-like-http-stackoverflow-com -क्वेशंस -1074-एएसपी-एमवीसी) – fdsa

उत्तर

14

@ प्रतीक अर्थ है एक जावा एनोटेशन संसाधन। जावा एनोटेशन क्या करता है, यह है कि यह चर, विधि, वर्ग, इंटरफेस, या अन्य भाषा तत्वों के लिए एक विशेष विशेषता जोड़ता है। (जब आप एनोटेशन घोषित करते हैं तो इसे कॉन्फ़िगर किया जा सकता है) जब आप किसी चीज़ को एनोटेशन जोड़ते हैं, तो प्रोग्राम के अन्य भाग यह जांच सकते हैं कि कुछ एनोटेशन है या नहीं। इसके बाद यह जानकारी जो भी सामान चाहिए उसे करने के लिए उपयोग कर सकती है।

मैं आपको कुछ उदाहरण देता हूँ:

@Override एनोटेशन:

public class SuperClass { 
    public void someMethod() { 
     System.out.println ("Superclass!"); 
    } 
} 

public class DerivedClass extends SuperClass { 
    @Override 
    public void someMethod() { 
     System.out.println ("Derived class!"); 
    } 
} 

और जब आप ऐसा करते हैं:

SuperClass sc = new DerivedClass(); 
sc.someMethod(); 

यह someMethodSuperClass में सही निष्पादित करेंगे? नहीं। यह "व्युत्पन्न वर्ग" प्रिंट करेगा। ऐसा इसलिए है क्योंकि व्युत्पन्न कक्षा में, यह @Override चीज़ है। इसलिए व्युत्पन्न वर्ग सुपर क्लास someMethod ओवरराइड करता है।

@SuppressWarnings एनोटेशन:

public void someMethod() { 
    int i; 
} 

एक संकलक चेतावनी कह रही है कि i इस्तेमाल कभी नहीं किया है नहीं होगा:

यहाँ एक विधि है।

@SuppressWarnings ("unused") 
public void someMethod() { 
    int i; 
} 

नोट @SuppressWarnings एनोटेशन के लिए एक पैरामीटर है कि वहाँ: तो आप चेतावनी को दबाने के लिए विधि के लिए @SuppressWarnings जोड़ सकते हैं। कुछ एनोटेशन में पैरामीटर होते हैं और आप उन्हें जवाडोक में देख सकते हैं। लेकिन उन लोगों के लिए जिनके पास पैरामीटर नहीं हैं, आपको किसी विधि की तरह () जोड़ने की आवश्यकता नहीं है।

आप अपनी खुद की टिप्पणियां भी घोषित कर सकते हैं और उनकी जांच के लिए प्रतिबिंब का उपयोग कर सकते हैं। उपरोक्त 2 एनोटेशन को कंपाइलर द्वारा चेक किया जाएगा।

+16

'ओवरराइड' आपके उदाहरण में एक विधि को ओवरराइड करने के लिए आवश्यक नहीं है; वह उदाहरण '@ ओवरराइड' के साथ भी काम करेगा। '@ ओवरराइड' एक पाठक को इंगित करने के लिए मौजूद है कि एक विधि ओवरराइड है, और यह भी सुनिश्चित करने के लिए कि विधि ओवरराइड है। उदाहरण के लिए, यदि आपने सबक्लास 'विधि नाम में एक टाइपो बनाया है, तो आपकी विधि सुपर क्लास' विधि (इसके अलग-अलग नाम के कारण) का ओवरराइड नहीं होगा। आम तौर पर यह ठीक रहेगा, लेकिन अगर आपने इसे '@ ओवरराइड' के साथ एनोटेट किया है, तो एक कंपाइलर त्रुटि उत्पन्न होगी, आपको बताएगी कि यह एक ओवरराइड विधि की उम्मीद है। – Alexander

2

@ प्रतीक का उपयोग annotations के लिए किया जाता है। मेरे अनुभव में, सबसे आम एनोटेशन @Override है, जो इंगित करता है कि एक सुपरक्लास में एक विधि घोषित की जाती है। अन्य सामान्य एनोटेशन @Deprecated हैं, जो संकेत देते हैं कि संकलक में दिखाई देने से चेतावनियों को रोकने के लिए, किसी विधि को अब उपयोग नहीं किया जाना चाहिए, लेकिन पिछली संगतता के लिए अभी भी मौजूद है, और @SupressWarnings

ध्यान दें कि एनोटेशन प्राप्त करना वास्तव में संभव है जो कोर जावा पुस्तकालयों में शामिल नहीं हैं और अपनी खुद की टिप्पणियां घोषित करने के लिए।

5

@ साइन का उपयोग जावा एनोटेशन निर्दिष्ट करने के लिए किया जाता है।

https://en.wikipedia.org/wiki/Java_annotation

वहाँ अंतर्निहित हैं जावा एनोटेशन और उपयोगकर्ता कस्टम एनोटेशन में परिभाषित किया।

एनोटेशन ऐसे दबाने चेतावनी, यूआरआई (सर्वलेट) के सहयोगी पद्धति के रूप में विभिन्न तरीकों से उपयोग किया जाता है, सहयोगी चर (JNDI) आदि

0

जैसा कि कुछ अन्य सुझाव देते हैं, यह जावा की एनोटेशन है। यह कंपाइलर को आपके कोड को सत्यापित करने और प्रोग्रामर को सूचित करने में सहायता करता है।

बहुत ही सरल कोड उदाहरण:

public class SomeClass { 

    @Override 
    public String toString() { 
     return "SomeClass"; 
    } 

    @Deprecated 
    public void doSomeOperation() { 
     // some operation... 
    } 
} 

SomeClass#toString से एनोटेशन जो @Override है संकलक निर्धारित करने के लिए है कि यह वर्ग Object को निहित विरासत से एक ओवरराइड समारोह है मदद करता है।

जबकि SomeClass#doSomeOperation से एनोटेशन प्रोग्रामर को चेतावनी देगा कि फ़ंक्शन स्वयं को पहले से ही हटा दिया गया है और इसका उपयोग करने से बचा जाना चाहिए।

-2

एनोटेशन पाठक या कंपाइलर के लिए हैं, निष्पादन योग्य कोड नहीं।

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