लोग,जावा -
मैं जावा की सबसे अच्छी कोडिंग यहाँ
http://viralpatel.net/blogs/most-useful-java-best-practice-quotes-java-developers/
2 उद्धरण कहते हैं उल्लेख किया प्रथाओं के माध्यम से जा रहा था,
उद्धरण 2 गेटर विधि के अंदर संपत्ति क्लोन: कभी नहीं एक बनाने के क्लास पब्लिक के उदाहरण फ़ील्ड
मैं मानता हूं कि यह बिल्कुल सही है, लेकिन मैं लेखक के अनुशंसा के बाद इस उद्धरण के नीचे कुछ पंक्तियों के लिए अटक गया।
वे कहते हैं,
private String[] weekdays =
{"Sun", "Mon", "Tue", "Thu", "Fri", "Sat", "Sun"};
public String[] getWeekdays() {
return weekdays;
}
लेकिन गेटर विधि लेखन वास्तव में हमारी समस्या का समाधान नहीं होता। सरणी अभी भी सुलभ है। इसे अपरिवर्तनीय बनाने का सबसे अच्छा तरीका है सरणी के बजाय सरणी के क्लोन को वापस करना। इस प्रकार गेटर विधि
public String[] getWeekdays() {
return weekdays.clone();
}
मैं कभी नहीं अपने आप को जावा वर्ग के किसी भी गेटर विधि के अंदर clone()
इस्तेमाल किया में बदल जायेगा।
मैं सोच रहा हूँ (के रूप में यह अच्छी प्रथाओं से एक होने का उल्लेख किया गया है) - क्यों एक should use
/shouldn't use
clone()
गेटर विधि के अंदर? और किस परिदृश्य में?
क्या यह जावा के लिए एक अच्छा कोडिंग अभ्यास होने योग्य है?
धन्यवाद
आईएमओ - अपरिवर्तनीय वस्तुओं और आदिम डेटा प्रकार क्लोन की आवश्यकता नहीं है। बाकी सब कुछ के लिए यदि हम वास्तव में अपने डेटा को सुरक्षित रखना चाहते हैं तो हमें क्लोन प्रतिलिपि वापस करनी होगी, न कि मूल। –
आप 'Arrays.asList (सप्ताहांत)' वापस कर सकते हैं, जो अपरिवर्तनीय होगा। – Jivings
@Jivings सच नहीं है। सूची नए तत्वों को स्वीकार नहीं करेगी, लेकिन सेट() विधियां काम करती हैं। –