भाग 1। मैंने संक्षेप में स्रोत और वर्ग प्रकार के एनोटेशन के बारे में लिखा है। यह पढ़ने योग्य है, ताकि दूसरे भाग में खो जाने से बचने के लिए और अपनी "गलतफहमी" को थोड़ा विस्तारित करने के लिए =) मैं वादा करता हूँ कि निश्चित रूप से कम से कम एक शब्द होगा जिसे आप जानते हैं! पहली बार जब मैंने कार्यों में एनोटेशन देखा तो मैंने किसी तरह उन पर ज्यादा ध्यान नहीं दिया। यहाँ और वहाँ @Override है, लेकिन IDEA इसे जोड़ता है, इसलिए मुझे लगा कि इसे उसी तरह होना चाहिए। समय के साथ, मुझे एहसास हुआ कि सब कुछ बहुत गहरा है। जैसा कि आप अध्ययन करते हैं, एनोटेशन कुछ हद तक बेकार लेकिन आवश्यक लग सकते हैं। आप नहीं जानते कि वे क्यों मौजूद हैं या वे क्या करते हैं। आपने कुछ ऐसे लेख पढ़े हैं जिनमें कहा गया है, "यह बहुत अच्छा है कि अब हमारे पास एनोटेशन हैं, सब कुछ इतना सरल हो गया है।" लेकिन मुझे नहीं पता था कि चीजें पहले कैसी थीं, और मुझे समझ नहीं आया कि चीजें अब आसान हैं। अब मैं जानता हूं और थोड़ा साझा करना चाहता हूं। (RetentionPolicy) एनोटेशन 3 प्रकार के होते हैं:
देशी - मैंने इसे कभी नहीं देखा और कभी इसका इस्तेमाल नहीं किया। मुझे लगता है कि यह एक दुर्लभ एनोटेशन है, क्योंकि इसका उपयोग तब किया जाता है जब आपको किसी अन्य "देशी" भाषा में कोड चलाने की आवश्यकता होती है। मैंने कोशिश की और इसका स्पष्ट उल्लेख खोजने में असफल रहा।
SuppressWarnings — इस एनोटेशन का उपयोग अक्सर इस तरह किया जाता है: @SuppressWarnings("unchecked")। इसका उपयोग उन चेतावनियों को दबाने के लिए किया जाता है जिनके बारे में आप पहले से ही जानते हैं। पिछला उदाहरण अनियंत्रित प्रकार के रूपांतरणों के बारे में चेतावनियों को दबा देता है। दोबारा, यह एकमात्र उपयोग है जिसका मैंने सामना किया है।
जेनरेट किया गया - मैं अभी इस एनोटेशन में एक असाइनमेंट के कारण चल रहा हूं जहां मुझे एक्सएसडी फाइलों से कक्षाएं उत्पन्न करनी हैं। ये 3 एनोटेशन काफी विशिष्ट हैं और वर्तमान में आपके लिए सबसे अधिक अरुचिकर हैं। मैं आखिरी का वर्णन करूंगा।
ओवरराइड - आप इसे लगातार इस्तेमाल करते हैं और यह कुछ बहुत उपयोगी करता है। किसी विधि को ओवरराइड करते समय, IDEA की सहायता के बिना गलती करना आसान होता है। चाहे टाइपोस हों या साधारण त्रुटियां, गलतियां होती हैं। यह एनोटेशन सुनिश्चित करेगा कि मूल वर्ग में विधि हमारी (एनोटेटेड) विधि से मेल खाती है। यह सुनिश्चित करता है कि विधि जोड़ने के बजाय ओवरराइड की जाएगी। कोड को रीफैक्टरिंग करते समय, मूल विधि को हटाया या बदला जा सकता है। दोबारा, यह एनोटेशन एक त्रुटि इंगित करेगा। इसके बिना, हमारी विधि बस जोड़ दी जाएगी। उबाऊ? मैं हाँ कहूँगा। इस लेख से बहुत मदद नहीं मिली है। यहां लगभग सब कुछ (90%) कुछ ऐसा वर्णन करता है जिसका आप कभी उपयोग नहीं करेंगे या केवल बहुत ही कम। शेष 10% हैलो कह रहे हैं और @Override एनोटेशन का वर्णन कर रहे हैं, जो पहली नज़र में बेकार है। उस ने कहा, मुझे लगता है कि लेख के दूसरे भाग में और अधिक दिलचस्प होगा। RUNTIME एनोटेशन पर चर्चा होगी - वे निष्पादन के दौरान कोड के साथ इंटरैक्ट करते हैं और काला जादू करते हैं। एनोटेशन। भाग 2. लोम्बोक
- स्रोत - संकलक के लिए एनोटेशन
- क्लास - एनोटेशन से जानकारी बायटेकोड में लिखी जाएगी लेकिन रनटाइम पर उपलब्ध नहीं होगी। वे कहते हैं कि मानक पुस्तकालय में इस प्रकार के कई एनोटेशन हैं, जिन्हें अब पिछड़े संगतता के लिए रखा गया है। इसका उपयोग बहुत ही विशिष्ट कार्यों के लिए किया जाता है।
- स्टैक ओवरफ्लो पर क्यू एंड ए
- RUNTIME — ये एनोटेशन सबसे लोकप्रिय हैं। कोड निष्पादित होने के दौरान उनका उपयोग किया जाता है।
- जावा/लैंग/एनोटेशन/नेटिव क्लास;
- जावा/लैंग/SuppressWarnings.class
- जावैक्स/एनोटेशन/जेनरेटेड क्लास
- जावा/लैंग/ओवरराइड.क्लास
- com/sun/istack/internal/Nullable.class
- com/sun/istack/internal/NotNull.class
- com/sun/istack/internal/Interned.class
- नेटिव - इस एनोटेशन वाला एक वेरिएबल नेटिव कोड को संदर्भित कर सकता है;
- SuppressWarnings — यह एनोटेशन विभिन्न कंपाइलर चेतावनियों को दबा देता है;
- जनरेट किया गया — यह एनोटेशन जेनरेट किए गए स्रोत कोड को चिन्हित करता है;
- ओवरराइड - यह एनोटेशन चेक विधि ओवरराइड करता है।
GO TO FULL VERSION