2008-08-27 15 views
5

जावा में, कहें कि आपके पास एक कक्षा है जो ArrayList (या किसी भी संग्रह) ऑब्जेक्ट्स को लपेटती है।जावा रिटर्न कॉपी भविष्य में परिवर्तनों को छिपाने के लिए

आप उन वस्तुओं में से एक को कैसे वापस कर देंगे जैसे कॉलर को ऐरेलिस्ट में किए गए ऑब्जेक्ट में कोई भविष्य परिवर्तन नहीं दिखाई देगा?

यानी आप ऑब्जेक्ट की एक गहरी प्रतिलिपि वापस करना चाहते हैं, लेकिन आप नहीं जानते कि यह क्लोन करने योग्य है या नहीं।

उत्तर

4

बारी है कि एक कल्पना में:: यहाँ एक ब्लॉग पोस्ट यह समझा है
क्योकि वस्तुओं के क्रम में एक इंटरफ़ेस को लागू करने की जरूरत है संग्रह में अनुमति दी जा कुछ की तरह ArrayList<ICloneable>()

तो फिर तुम आश्वासन दिया जा सकता है कि आप हमेशा एक गहरी प्रतिलिपि करते हैं - इंटरफ़ेस में एक विधि होनी चाहिए जो एक गहरी प्रतिलिपि वापस करने की गारंटी है।

मुझे लगता है कि यह सबसे अच्छा है जो आप कर सकते हैं।

संग्रह में संग्रहीत cloneable होने की कक्षाओं के लिए एक अपेक्षित बनाओ:

1

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

या यदि आइटम क्लोन करने योग्य नहीं है, तो संदर्भ विकल्प द्वारा वापसी पर वापस असफल हो जाएं।

संबंधित मुद्दे