का उपयोग क्या है मुझे जावा की यह सुविधा समझ में नहीं आया। मुझे पता है कि यह कोडिंग को आसान बनाता है और कभी-कभी नीदर दिखता है, लेकिन इसका वास्तविक उपयोग क्या है? इसके विपरीत मुझे लगता है कि चेतावनी प्रदर्शित करना बेहतर है, भविष्य में कोई भी कोड में संशोधन करने से पहले उन्हें संदर्भित कर सकता है। क्या यह @SuppressWarnings जटिलता को बढ़ाता है या यह किसी भी कोडिंग मानकों के अनुसार है?@SuppressWarnings
उत्तर
अन्य उत्तर पहले से ही @SuppressWarnings
एक बहुत की उपयोग के मामलों के बारे में बताया है, लेकिन मैं कहना है कि कभी कभी आप पूरी तरह @SuppressWarnings
उपयोग करने के लिए ही भाषा की सीमाओं को पार करने की जरूरत पर जोर देना चाहते हैं, और @SuppressWarnings
के इन मामलों में उपयोग में पूरी तरह से कानूनी है ।
अन्य मामलों में @SuppressWarnings
का उपयोग संदिग्ध माना जा सकता है, क्योंकि इन मामलों में आप हमेशा कोड को बदलकर चेतावनियों से छुटकारा पा सकते हैं (हालांकि, जाहिर है, यह हमेशा स्वीकार्य नहीं है)।
- एक सरणी समर्थित सामान्य संग्रह को लागू करने के लिए वर्गों से (जब से तुम नहीं एक सामान्य सरणी बना सकते हैं)
- एक
Map
:यहाँ कुछ आम मामलों जब आप पूरी तरह
@SuppressWarnings
बिना चेतावनी से छुटकारा पाने के लिए नहीं कर सकते हैं उनके कार्यान्वयन (चूंकि आप विभिन्न मानचित्र प्रविष्टियों के लिए सामान्य प्रकार पैरामीटर के विभिन्न मान निर्दिष्ट नहीं कर सकते हैं)
वास्तविक उपयोग चेतावनियों को दबाने के लिए है। बस। कुछ भी कम नहीं, और कुछ नहीं। मुझे नहीं लगता कि यह किसी भी संकलन दक्षता को प्रभावित करता है लेकिन निश्चित रूप से समय दक्षता नहीं चलाता है।
जब आप लीगेसी कोड से निपट रहे हैं जो जेनेरिक (जावा < = 1.4) का समर्थन नहीं करता है, तो यह कास्ट चेतावनियों से छुटकारा पाने का एकमात्र व्यवहार्य तरीका है।
प्रोग्रामिंग के दौरान आपको कंपाइलर चेतावनियों के लिए देखना चाहिए और सर्वोत्तम मामले में आपके कोड को कोई चेतावनी (और निश्चित रूप से त्रुटियों) के साथ संकलित करना चाहिए।
लेकिन कभी-कभी आप चेतावनी से छुटकारा नहीं पा सकते हैं और आप जानते हैं कि कोड सही है या बदला नहीं जा सकता है। तब आप संकलक से हर बार परेशान नहीं होना चाहते हैं कि कुछ गड़बड़ है।
तो आप इसे बताए गए आदेश के साथ दबा सकते हैं।
SuppressWarnings
का उपयोग संकलन के दौरान उपयोग किया जाना है (इसलिए, केवल संकलक जानता है कि SuppressWarnings
एनोटेशन को देखते समय क्या करना है)।
JavaDoc कहता है:
The set of warnings that are to be suppressed by the compiler in the annotated element. Duplicate names are permitted. The second and successive occurrences of a name are ignored. The presence of unrecognized warning names is not an error: Compilers must ignore any warning names they do not recognize. They are, however, free to emit a warning if an annotation contains an unrecognized warning name.
वहाँ @SuppressWarnings
लेकिन सबसे अधिक उपयोगी मामलों में से एक का उपयोग कर के लिए कई कारण हैं:
चेतावनी के हजारों के साथ एक मौजूदा परियोजना के बाद। आप चाहते हैं कि आपकी टीम अब चेतावनियों का ख्याल रखे लेकिन आपके पास सभी चेतावनियों को ठीक करने का समय नहीं है।
एनोटेशन आपको कुछ चेतावनियों को दबाने का मौका देता है जिन्हें तेजी से तय नहीं किया जा सकता है और "साफ" आधार प्राप्त नहीं किया जा सकता है।
यह साफ आधार आवश्यक है क्योंकि कोई भी चेतावनी के साथ कोड में जांचने से डर नहीं पाएगा, जबकि कोडबेज चेतावनी मुक्त है और टीम में हर कोई तत्काल देखता है जब कोई है 2 चेतावनियों के साथ कोड में जांचना या तो।
- आप तीसरे पक्ष के libs का उपयोग कर रहे हैं और इसलिए आप उन चेतावनियों से नाराज हो रहे हैं जिन्हें आप ठीक नहीं कर सकते हैं, जिसे आप ज्यादातर मामलों में नहीं चाहते हैं।
मेरी राय में पहला कारण @SuppressWarnings
के लिए सबसे अच्छा उपयोग मामलों में से एक है।
- 1. @SuppressWarnings ("धारावाहिक")
- 2. सभी SuppressWarnings मूल्य?
- 3. असमर्थित @SuppressWarnings ("PMD.DoNotCallSystemExit")
- 4. @SuppressWarnings मूल्य सुपरइंटरफेस
- 5. जावा में SuppressWarnings ("अनचेक") क्या है?
- 6. ग्रहण - @SuppressWarnings ("javadoc") काम नहीं करता
- 7. एकाधिक @SuppressWarnings एनोटेशन का संयोजन - ग्रहण इंडिगो
- 8. क्या स्कैला में SuppressWarnings के बराबर है?
- 9. Android में @SuppressWarnings ("बहिष्करण") और ("अप्रयुक्त") क्या है?
- 10. जावा: @SuppressWarnings (...) पैरामीटर की पूरी सूची (Netbeans में)?
- 11. क्या मैं जावा एनोटेशन कर सकता हूं जो @SuppressWarnings "विस्तृत" करता है?
- 12. जावा के @SuppressWarnings एनोटेशन के समान सी # में चेतावनियों को दबाने का कोई तरीका है?
- 13. जेनिक्स में जेनिक्स में @SuppressWarnings ("अनचेक") जोड़ें एकल रेखा से ग्रहण कंपाइलर त्रुटि
- 14. हमें @SuppressWarnings ("अनचेक") के लिए मध्यस्थ चर का उपयोग क्यों करना है?
- 15. धारावाहिक लागू करने वाले वर्गों पर serialVersionUID और @SuppressWarnings ("धारावाहिक") का उपयोग करने के पेशेवर और विपक्ष क्या हैं?
- 16. मैं पूरी विधि के बजाय एक एकल कलाकार के लिए @SuppressWarnings ("अनचेक") के साथ कैसे टिप्पणी करूं?
- 17. कैसे विशेष रूप से दबाने के लिए ग्रहण-Helios में "समान भाव की तुलना" जेडीटी
- 18. मैं वर्ग या विधि के लिए सोनार में SQUID: Unused संरक्षित विधि अक्षम कैसे कर सकता हूं?
- 19. आयात स्टेटमेंट पर अस्वीकृत प्रकार की चेतावनियों को अनदेखा करें
- 20. जावा कंपाइलर त्रुटि कोई समझ नहीं बना रही है (<identifier> अपेक्षित)
- 21. DataAccessException प्रकार का कोई अपवाद फेंक दिया जा सकता है; एक अपवाद प्रकार थ्रोबल
- 22. सिस्टम रिबूट
- 23. जावा में सभी कथन क्यों एनोटेट नहीं किए जा सकते हैं?
- 24. जावा
- 25. का उपयोग जेनरिक अनियंत्रित रूपांतरण चेतावनी
- 26. बग ("टी के प्रकार के मापदंडों का निर्धारण नहीं किया जा सकता है")
- 27. आर रिकर्सिव अभिव्यक्ति पर चेतावनी संदेश: यदि आप असफल होते हैं, तो कोशिश करें, पुनः प्रयास करें
- 28. एंड्रॉयड CheckBoxPreference - संयुक्त राष्ट्र/चेक सभी वरीयताओं
- 29. स्विंग घटकों और क्रमबद्धता
- 30. स्केल
'SuppressWarnings' का उपयोग न केवल जेनिक्स समर्थन या कास्ट चेतावनियों के लिए किया जाता है। –
जो कहता है वे हैं :)? –
अपनी पोस्ट को दोबारा पढ़ें। –