Java序列化报错serialVersionUID不一致
生活随笔
收集整理的這篇文章主要介紹了
Java序列化报错serialVersionUID不一致
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
反序列化報錯:java.io.InvalidClassException:?com.*.*;???local?class?incompatible:?stream?classdesc?serialVersionUID?=?5590259895198052390,?local?class?serialVersionUID?=?7673969121092229700??
因為 Java 的序列化機制是通過在運行時判斷類的serialVersionUID來驗證版本一致性的。在進行反序列化時,JVM 會把傳來的字節(jié)流中的serialVersionUID與本地相應實體(類)的serialVersionUID進行比較,如果相同就認為是一致的,可以進行反序列化,否則就會出現(xiàn)序列化版本不一致的異常。
?
一般來說,定義serialVersionUID的方式有兩種,分別為:
?
采用默認的1L,具體為private static final long serialVersionUID = 1L;
根據(jù)類名、接口名、成員方法及屬性等來生成一個64位的哈希字段,例如 private static final long serialVersionUID = XXXL;
總結
以上是生活随笔為你收集整理的Java序列化报错serialVersionUID不一致的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 洛谷p2234/BZOJ1588 [HN
- 下一篇: java maven调用hbase