[Java] जावा में बहिष्कृत विधियों या कक्षाओं का उपयोग करना गलत है?


Answers

आप अभी भी प्रदर्शन के बिना बहिष्कृत कोड का उपयोग कर सकते हैं, लेकिन विधि / वर्ग को बहिष्कृत करने का पूरा बिंदु उपयोगकर्ताओं को यह बताने के लिए है कि अब इसका उपयोग करने का एक बेहतर तरीका है, और भविष्य में रिलीज होने पर हटाए गए कोड को हटा दिया जा सकता है।

Question

मैं एक वेब अनुप्रयोग विकसित करने के लिए ग्रहण का उपयोग कर रहा हूँ। बस आज मैंने जेएआर फ़ाइल को बदलकर अपने स्ट्रैट्स संस्करण को अपडेट किया है। मुझे कुछ स्थानों पर चेतावनियां मिल रही हैं कि विधियों को बहिष्कृत किया गया है, लेकिन कोड ठीक काम कर रहा है।

मैं कुछ चीजें जानना चाहता हूं

  1. जावा में बहिष्कृत विधियों या कक्षाओं का उपयोग करना गलत है?

  2. क्या होगा यदि मैं किसी भी विधि को नहीं बदलता और मेरे आवेदन को चेतावनी के साथ चलाता हूं, तो क्या यह कोई प्रदर्शन समस्या बनाएगा।




जावा में यह @Deprecated है, सी # में यह [अप्रचलित] है।

मुझे लगता है कि मैं सी # की शब्दावली पसंद करता हूं। इसका मतलब है कि यह अप्रचलित है। यदि आप चाहें तो भी आप इसका उपयोग कर सकते हैं, लेकिन शायद एक बेहतर तरीका है।

यह विंडोज 7 के बजाय विंडोज 3.1 का उपयोग करने जैसा है यदि आपको लगता है कि विंडोज 3.1 अप्रचलित है। आप अभी भी इसका उपयोग कर सकते हैं, लेकिन भविष्य के संस्करण में शायद बेहतर सुविधाएं हैं, साथ ही भविष्य के संस्करणों का भी समर्थन किया जाएगा - अप्रचलित व्यक्ति नहीं होगा।

जावा के @ डेप्रेटेड के लिए - आप अभी भी विधि का उपयोग कर सकते हैं, लेकिन अपने जोखिम पर - भविष्य में, इसमें बेहतर विकल्प हो सकते हैं, और यहां तक ​​कि समर्थित भी नहीं हो सकता है।

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

संपादित करें: और जैसा कि माइकल द्वारा इंगित किया गया है, अगर विचलन का कारण कार्यक्षमता में दोष के कारण है (या क्योंकि कार्यक्षमता भी मौजूद नहीं होनी चाहिए), तो जाहिर है, किसी को बहिष्कृत कोड का उपयोग नहीं करना चाहिए।




आपने इस शब्द को "आत्म-बहिष्कार हास्य" सुना होगा। यह हास्य है जो आपके महत्व को कम करता है। एक बहिष्कृत वर्ग या विधि इस तरह है। यह अब महत्वपूर्ण नहीं है। वास्तव में, यह वास्तव में इतना महत्वहीन नहीं है कि अब इसका उपयोग नहीं किया जाना चाहिए, क्योंकि यह भविष्य में शायद अस्तित्व में रहेगा।

इसे टालने का प्रयास करें




उपर्युक्त सभी उत्कृष्ट प्रतिक्रियाओं के अलावा मुझे पता चला कि बहिष्कृत एपीआई कॉल को हटाने का एक और कारण है।

शोध करें कि एक कॉल को बहिष्कृत क्यों किया जाता है, मैं अक्सर जावा / एपीआई / फ्रेमवर्क के बारे में दिलचस्प बातें सीखता हूं। अक्सर एक अच्छा कारण होता है कि एक विधि को क्यों हटाया जा रहा है और इन कारणों को समझने से गहन अंतर्दृष्टि होती है।

तो एक सीखने / बढ़ते परिप्रेक्ष्य से, यह भी एक सार्थक प्रयास है




जावा में बहिष्कृत विधियों या कक्षाओं का उपयोग करना गलत है? यह "गलत" नहीं है, अभी भी काम कर रहा है लेकिन जितना संभव हो उससे बचें।

मान लीजिए कि एक विधि से जुड़ी एक सुरक्षा भेद्यता है और डेवलपर्स निर्धारित करते हैं कि यह एक डिज़ाइन दोष है। इसलिए वे विधि को त्यागने और नए तरीके से पेश करने का फैसला कर सकते हैं।

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

क्या होगा यदि कोई विधि नहीं बदली और मेरे आवेदन को चेतावनी के साथ चलाएं, तो क्या यह कोई प्रदर्शन समस्या बनाएगा।

यदि बहिष्करण किसी प्रदर्शन समस्या के कारण होता है, तो आप प्रदर्शन समस्या से पीड़ित होंगे, अन्यथा ऐसी कोई समस्या होने का कोई कारण नहीं है। फिर से बाहर निकलना चाहते हैं, बहिष्कार के कारण से अवगत रहें।




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



यह गलत नहीं है, लेकिन सॉफ़्टवेयर के भविष्य के संस्करणों में से कुछ बहिष्कृत विधियों को हटा दिया गया है, इसलिए आप संभवतः काम कोड के साथ समाप्त हो जाएंगे।