0

我有序列化对象的序列化对象不匹配的问题。这是我的场景...

版本 1. A 类扩展 B 类,都实现可序列化,B 类没有序列 UID

版本2。A类扩展了B类,都实现了可序列化,B类现在有一个SERIAL UID *,A类的serialuid与版本1相同。

遗憾的是,我无法访问 Java 源代码,因此我在此处和其他站点上进行了检查,并通过覆盖我的 objectinputstream 的 readclassdescriptor 并使用它来读取对象找到了一种解决方法。但是,我遵循了示例,但我的代码仍然报告说(B类的)serialversionuids仍然不匹配..我什至尝试了另一种解决方案,我将B类版本2的serialversionuid“注入”到B类v1的数据中,然后使用objectinputstream读取,但我找不到serialversionuid在持久化 B 类 v1 对象的文件中(使用十六进制查看器/编辑器).. 有什么想法可以克服这个问题吗?谢谢

4

1 回答 1

2

我会将 serialVersionUID 设置为 1,当您收到错误消息时

serialVersionUID=-1023774639622504485 local class serialVersionUID=1

您知道,如果您将您的 serialVersionUID 更改为-1023774639622504485L 或者它是什么,它将与您当前所拥有的相匹配。这将允许您通过 uid 检查。

于 2012-09-15T12:42:51.763 回答