2012-11-28 14 views
7

Avevo salvato un oggetto java nel database e dopo alcuni giorni ho cambiato la mia versione di jre. Ora, quando ho provato a leggere quello stesso oggetto sto ottenendo seguente eccezione:Come sbarazzarsi di InvalidClassException SerialVersionUID?

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

Come posso liberarmi di questo, come posso ottenere l'oggetto salvato?

per favore aiutatemi.

+4

Questo è il motivo per cui si dovrebbe sempre definire esplicitamente il tuo SUID per la via. – Perception

risposta

8

Se è possibile influire sul codice sorgente di questa classe e JRE è stato modificato solo in parte, molto probabilmente è ancora possibile deserializzare l'oggetto che è stato serializzato dalla JVM precedente. Basta definire seguente campo in classe per essere deserializzato:

private static final long serialVersionUID = -6377573678240024862L; 
Problemi correlati