मैं ब्रायन के जवाब को वोट किया है, लेकिन एक छोटे से उच्च स्तर के बारे में सोचा जोड़ना चाहते थे ..
यदि आप एसडीके देखते हैं, तो आप पाएंगे कि वे शायद ही कभी (यदि कभी) वास्तविक संग्रह वस्तुओं के आसपास गुजरते हैं।
इसका कारण यह है कि यह एक बहुत अच्छा विचार नहीं है। संग्रह बेहद असुरक्षित हैं।
अधिकांश समय आप इसे पारित करने से पहले एक प्रतिलिपि बनाना चाहते हैं और प्रतिलिपि पास करना चाहते हैं ताकि संग्रह में कोई भी संशोधन उस पर निर्भर किसी अन्य चीज़ के लिए पर्यावरण को नहीं बदलेगा।इसके अलावा, थ्रेडिंग एक दुःस्वप्न बन जाती है - यहां तक कि एक सिंक्रनाइज़ संग्रह के साथ भी!
मैंने दो समाधान देखा है, एक हमेशा एक सरणी निकालने और इसे पास करने के लिए है। एसडीके यह करता है।
दूसरा माता-पिता वर्ग में संग्रह को हमेशा लपेटना है (और मेरा मतलब है कि विस्तारित नहीं किया गया है)। मुझे इस आदत में मिल गया है और यह बहुत मूल्यवान है। यह वास्तव में कुछ भी लागत नहीं लेता है क्योंकि आप सभी संग्रह विधियों को वैसे भी डुप्लिकेट नहीं करते हैं (वास्तव में आप उनमें से किसी को शायद ही कभी डुप्लिकेट करते हैं)। वास्तव में आप जो कर रहे हैं वह आपके सभी कोड को रैपर वर्ग में वितरित अन्य वर्गों से "उपयोगिता" कार्यक्षमता को ले जा रहा है, जहां यह पहली जगह में होना चाहिए था।
"विधि (संग्रह, ...)" से मेल खाने वाले हस्ताक्षर वाले किसी भी विधि को निश्चित रूप से उस संग्रह का सदस्य विधि होना चाहिए, जैसा कि संग्रह पर पुनरावृत्ति करने वाले किसी भी लूप को होना चाहिए।
मुझे बस इसे हर बार फेंकना है और फिर क्योंकि यह उन चीजों में से एक है जो मुझे थोड़ी देर तक नहीं मिला (क्योंकि कोई भी अवधारणा को चैंपियन नहीं करता था)। ऐसा लगता है कि इसमें कुछ कमी आएगी लेकिन थोड़ी देर के लिए ऐसा करने और समस्याओं को हल करने और इसे समाप्त करने के कोड को देखते हुए, मैं किसी भी संभावित दोष की कल्पना भी नहीं कर सकता, यह सब ठीक है।
स्रोत
2009-07-13 20:44:07
भले ही 'मैप' 'Serializable' लागू करता है, इसका मतलब यह नहीं है कि यह धारावाहिक है। लेकिन जावा जावा serialisability जावा में एक रनटाइम मुद्दा है। दुर्भाग्य से जावा के लिए –
, यह सही उत्तर है और शीर्ष पर होने का हकदार है। – hythlodayr
आपने मेरे उत्तर के महत्वपूर्ण भाग को याद किया ... आप मानचित्र स्वीकार करते हैं और फिर जांचें कि ऑब्जेक्ट एक उदाहरण है जो Serializable है। आप निश्चित रूप से इसे दूसरी तरफ कर सकते हैं लेकिन फिर आपको एक इंटरफ़ेस मिलेगा जो वास्तव में उपयोगकर्ता को यह नहीं बताएगा कि आप किस प्रकार का संग्रह चाहते हैं। – Fredrik