2012-11-28 96 views
7

我已經在數據庫中保存了一個java對象,然後幾天後我改變了我的jre版本。 現在,當我嘗試讀取我得到以下例外是相同的對象:如何擺脫InvalidClassException SerialVersionUID?

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

我怎樣才能擺脫這一點,我怎麼能得到保存的對象?

請幫幫我。

+4

這就是爲什麼您應該總是明確定義您的SUID的原因。 – Perception

回答

8

如果您可以影響此類的源代碼,並且JRE只是發生了更改,那麼很可能仍然可以反序列化由舊JVM序列化的對象。只需在類中定義以下字段進行反序列化:

private static final long serialVersionUID = -6377573678240024862L;