Java序列化-java.io.InvalidClassException本地类不兼容

Java序列化-java.io.InvalidClassException本地类不兼容,第1张

Java序列化-java.io.InvalidClassException本地类不兼容

@DanielChapman很好地解释了serialVersionUID,但没有解决方案。解决方法是:

serialver
在所有
类上运行该程序。将这些
serialVersionUID
值放在 当前
的类版本中。只要当前的类与旧版本在串行上兼容,就可以了。(注意以后的代码: 所有 类上都应 始终 有一个)
serialVersionUID

__
Serializable


如果新版本与序列 兼容,那么您需要对自定义

readObject
实现做一些魔术(仅
writeObject
当您尝试编写与旧代码兼容的
数据时才需要自定义)。一般来说,添加或删除类字段不会使类序列不兼容。更改现有字段的类型通常会。

当然,即使新类
串行兼容,您仍可能需要自定义

readObject
实现。如果您要填写从旧版本的类中保存的数据中缺少的任何新字段,则可能需要这样做(例如,您有一个新的List字段,要在加载旧的类数据时将其初始化为空列表)。



欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5016696.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-11-14
下一篇2022-11-14

发表评论

登录后才能评论

评论列表(0条)

    保存