2010-02-13 16 views
33

संभावित डुप्लिकेट:
Why should I bother about serialVersionUID?
what is a serial version id?जावा में सीरियल संस्करण आईडी क्या है?

जब मैं ग्रहण में java.util.logging.Level का विस्तार एक नया वर्ग बनाया है, यह एक डिफ़ॉल्ट जोड़ने के लिए मुझसे पूछा या धारावाहिक उत्पन्न संस्करण आईडी मैंने यह जानकर अंधेरे में जोड़ा कि यह क्या है और मुझे इसे क्यों जोड़ना है।

क्या कोई मुझे बता सकता है कि यह क्या है और इसकी आवश्यकता क्यों है।

+3

डुप्लिकेट: http://stackoverflow.com/questions/615181/what-is-a-serial-version-id, http://stackoverflow.com/questions/285,793/क्यों-चाहिए-ए-परेशान-के बारे में-serialversionuid – Bozho

उत्तर

34

सीरियल संस्करण आईडी का उपयोग तब किया जाता है जब ऑब्जेक्ट को क्रमबद्ध और deserializing। जावा पहचानता है कि क्या बाइट्स आप स्थानीय वर्ग संस्करण से मेल खाते हैं। यदि नहीं, तो यह एक अपवाद फेंक देगा।

आरएमआई या स्थायी ऑब्जेक्ट संरचनाओं को करने पर यह महत्वपूर्ण है।

javadoc of Serializable में क्रमबद्ध करने के बारे में बहुत अच्छा विवरण है।

12

यह कक्षा के लिए अद्वितीय पहचानकर्ता है, जो धारावाहिकरण के लिए उपयोग किया जाता है।

अगर आप एएसपी को क्रमबद्ध कर रहे हैं तो इसे घोषित करना बुद्धिमानी है क्योंकि यदि आप एक को घोषित नहीं करते हैं तो कक्षा को बदलते समय इसे स्वचालित रूप से जेनरेट किया जाएगा और सीरियलाइजेशन काम करना बंद कर देगा।

एक अच्छा संदर्भ यहाँ है: http://c2.com/ppr/wiki/JavaIdioms/AlwaysDeclareSerialVersionUid.html

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