मेरे पास एक आंतरिक कक्षा में एक निजी विधि है जो निजी है मैं सुरक्षितवर्क्स एनोटेशन का उपयोग करना चाहता हूं। हालांकि, मुझे या तो स्थिर या अंतिम विधि की आवश्यकता है। एक निजी विधि को भी अंतिम क्यों होना चाहिए? क्या यह अनावश्यक नहीं है?जावा @ सेफ वर्गार्ज क्यों निजी विधियों को अंतिम होने की आवश्यकता है
उत्तर
यह अनावश्यक है, और आप एक उत्कृष्ट बिंदु लाते हैं।
मुझे लगता है कि अंतिम या स्थैतिक की आवश्यकता के लिए वास्तविक कारण यह था कि विधि को ओवरराइड नहीं किया जा सकता था, और इस प्रकार एक उप-वर्ग डेटा के साथ छेड़छाड़ नहीं कर सका जिसने परिभाषा पर @SafeVarargs एनोटेशन बेकार कर दिया विधि का
लेकिन, हालांकि यह अनावश्यक है, लेकिन यह निर्णय का बुरा नहीं है - कई बार, प्रोग्रामर हर विधि को जितना संभव हो सके निजी बनाते हैं, और फिर धीरे-धीरे कक्षा को आवश्यकतानुसार खोलते हैं। यदि यह विधि निजी दायरे में होने पर अंतिम रूप में चिह्नित की जाती है, तो यदि विधि को खोला जाना है, तो अभी भी पहुंच स्तर पर केवल परिवर्तन के साथ @SafeVarargs एनोटेशन हो सकता है। यदि अंतिम रूप से अंतिम रूप से हटा दिया जाता है, तो आपको संकलन समय त्रुटि मिल जाएगी, लेकिन यदि आपके पास पहले से ही है, तो जो भी निजी पहुंच को हटा देता है (जो स्वयं नहीं हो सकता है, टीम-आधारित वातावरण में) क्यों भ्रमित नहीं होगा "निजी" संशोधक को हटाने से अचानक कोड अब संकलित नहीं होता है।
के लिए के बाद से त्रुटि संदेश "अवैध java.lang की तरह कुछ होगा उपयोग कर सकते हैं समझते हैं। सुरक्षित चेतावनी एनोटेशन। इंस्टेंस विधि ... अंतिम नहीं है और न ही निजी ", जो भी 'निजी' हटा देता है, उसके लिए कोई भ्रम नहीं होगा। –
यह सुविधा परियोजना सिक्का 2 का हिस्सा है और जुलाई 2017
यह कॉल को स्वीकार करना @SafeVarargs आ निजी तरीकों पर जावा 9 में avalaible हो जाएगा।
- 1. जावा: रैपर वर्गों की आवश्यकता क्यों है?
- 2. हमें एक निजी निर्माता की आवश्यकता क्यों है?
- 3. एक्सटेंशन विधियों को कक्षा घोषित करने की आवश्यकता है
- 4. डिलीट ऑपरेटर को स्थिर होने की आवश्यकता क्यों है?
- 5. सी # आंतरिक होने पर विधियों/सदस्यों को सार्वजनिक होने की अनुमति क्यों देता है
- 6. घटना कतार पर रोबोट विधियों को चलाने की आवश्यकता है?
- 7. क्यों PreparedStatement.setNull को sqlType की आवश्यकता है?
- 8. विधियों के अंदर बयान की आवश्यकता है?
- 9. सी # और जावा को कक्षा में सब कुछ होने की आवश्यकता क्यों है?
- 10. `निजी मूल्य 'और` निजी अंतिम मूल्य' क्यों अलग हैं?
- 11. क्यों "{} \" की आवश्यकता है?
- 12. टाइपफ़ोफ़ की आवश्यकता क्यों है?
- 13. निजी कन्स्ट्रक्टर और अंतिम
- 14. URLClassLoader और पैकेज-निजी विधियों की पहुंच
- 15. निजी तरीकों को अंतिम बनाओ?
- 16. ट्विस्ट की आवश्यकता क्यों है?
- 17. जावा में थ्रेड सेफ सिंगलेट्स
- 18. वेब को HTTP की आवश्यकता क्यों है?
- 19. स्ट्रीम को आलसी होने की आवश्यकता कब होती है?
- 20. प्रिंटवाइटर की आवश्यकता क्यों है?
- 21. $ रूट की आवश्यकता क्यों है?
- 22. क्यों वेक्टर की आवश्यकता है?
- 23. स्कैनफ की आवश्यकता क्यों है?
- 24. हमें "आउट" पैरामीटर की आवश्यकता क्यों है?
- 25. मुख्य विधि निजी क्यों है?
- 26. हमें जावा में इंटरफेस की आवश्यकता क्यों है?
- 27. जावा या एंड्रॉइड में @ ओवरराइड की आवश्यकता क्यों है?
- 28. केवल एक कथन के साथ विधियों को ब्रेसिज़ की आवश्यकता क्यों है?
- 29. निजी स्थैतिक विधियों का उपयोग
- 30. चलने योग्य चर को अंतिम रूप देने की आवश्यकता क्यों है?
अगर मैं सही आप @Safe निर्माताओं के लिए varargs और स्थिर तरीकों, अंतिम तरीकों के लिए के लिए, जावा-9 निजी – gstackoverflow