2010-01-19 2 views
5

में सीरियलाइजेशन जब मैं धारावाहिक इंटरफ़ेस को लागू करने के लिए जावा ऑब्जेक्ट को परिभाषित करता हूं, तो ऑब्जेक्ट के सदस्य भी क्रमबद्ध हो जाते हैं? या मुझे मार्ग के साथ हर वस्तु को फिर से परिभाषित करने के लिए घोंसले की गहराई के साथ जाना है?जावा

+0

चेक इस जवाब http://stackoverflow.com/questions/2007134/serialize-objects-containing-objects-java/2007214 हो सकता है क्रमबद्धता प्रक्रिया – JuanZe

उत्तर

6

अधिकांश कक्षाएं जिनका आप नियमित रूप से जावा में उपयोग करते हैं वे क्रमिक (संग्रह, स्ट्रिंग, संख्या के घटकों आदि) हैं, हालांकि आपके द्वारा संदर्भित किसी भी कक्षा को क्रमिक या धारावाहिक घोषित किया जाना चाहिए। बेशक, यदि वे क्षणिक हैं, तो वर्ग को deserialized जब वे संदर्भित नहीं किया जाएगा।

+0

सूचियों के बारे में क्या? –

+0

सूचियां संग्रह हैं। – Joey

+0

यह अनिवार्य रूप से एक ही तर्क है - मानक जेडीके कार्यान्वयन जैसे ऐरेलिस्ट प्रति सीरियलज़ेबल हैं, लेकिन यदि आप एक गैर-धारावाहिक वस्तु वाले एक को क्रमबद्ध करने का प्रयास करते हैं तो यह असफल हो जाएगा। –

3

ठीक है, सीरियलज़ेबल को लागू करने से आपको केवल सीरियलाइजेशन समर्थन मिलेगा यदि सभी गैर-क्षणिक सदस्यों (धन्यवाद, डैनबेन) या तो प्राइमेटिव या सीरिएलाइज़ेबल क्लासेस हैं।

तो हाँ, यदि आपके पास क्रमिक नहीं हैं, तो सदस्यों के रूप में बहुत सी अलग-अलग चीजें हैं, तो आपको उन्हें क्रमबद्ध बनाना होगा।

जब तक कि वे आपके ऑब्जेक्ट की स्थिति का प्रतिनिधित्व करने के लिए महत्वपूर्ण नहीं हैं। यदि आप उनके बिना इसे फिर से बना सकते हैं, तो आप हमेशा सदस्यों को धारावाहिकरण से मुक्त करने के लिए क्षणिक बना सकते हैं।

+2

सभी गैर क्षणिक बारे में कुछ विवरण के साथ मदद कर सकता है सदस्यों, मुझे विश्वास है। – danben

+0

आह, ठीक है। इसे बीते एक अर्सा हो गया है। – Joey

+0

संकलक दुर्भाग्य से यह जांच नहीं करता है! –

0

सदस्यों को स्वचालित रूप से Serializable नहीं बनाया जाता है।

यदि आपके पास आपके वर्ग में सदस्य हैं और आपने स्वयं को लिखा है, तो आपको प्रत्येक पर जाना होगा और उन्हें क्रमिक (इंटरफेस को कार्यान्वित करके) बनाना होगा।

जावा पुस्तकालयों के साथ आने वाले अधिकांश प्रकार पहले से ही क्रमबद्ध हैं, इसलिए आपको परेशान नहीं करना चाहिए।

और संभोग, यह सभी सदस्यों पर बार-बार लागू होता है।

दूसरे शब्दों में - यदि किसी ऑब्जेक्ट के भीतर किसी गहराई पर स्थान या मूल्य को स्थानांतरित या सहेजने की आवश्यकता है, तो इसे सीरियलज़ेबल होना चाहिए।