2012-11-28 16 views
7

मैंने डेटाबेस में एक जावा ऑब्जेक्ट सहेजा था और फिर कुछ दिनों के बाद मैंने अपना जेरे संस्करण बदल दिया। अब जब मैं कि एक ही वस्तु मैं अपवाद निम्न हो रही है पढ़ने के लिए करने की कोशिश की:अमान्य क्लासएक्सप्शन SerialVersionUID से कैसे छुटकारा पाएं?

Exception in thread "main" java.io.InvalidClassException: 
SerializeMe; local class incompatible: stream classdesc 
serialVersionUID = -6377573678240024862, local class serialVersionUID = -8204757486033751616 

मैं इस से छुटकारा पा सकते हैं, मैं बचाया वस्तु कैसे मिल सकता है?

कृपया मेरी मदद करें।

+4

यही कारण है कि आपको हमेशा अपने SUID को स्पष्ट रूप से परिभाषित करना चाहिए। – Perception

उत्तर

8

यदि आप इस कक्षा के स्रोत कोड को प्रभावित कर सकते हैं और जेआरई केवल एक चीज बदल गई है, तो संभवतः आप पुराने जेवीएम द्वारा क्रमबद्ध ऑब्जेक्ट को deserialize कर सकते हैं। बस वर्ग में निम्न क्षेत्र को deserialized करने के लिए परिभाषित करें:

private static final long serialVersionUID = -6377573678240024862L; 
संबंधित मुद्दे