gpt4 book ai didi

java - 覆盖java序列化不匹配

转载 作者:行者123 更新时间:2023-12-02 07:34:33 25 4
gpt4 key购买 nike

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

版本 1。A类扩展了B类,两者都实现了可序列化,B类没有串行UID

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

遗憾的是,我无法访问java源代码,所以我在这里和其他网站上进行了检查,并找到了一种解决方法,方法是覆盖我的objectinputstream的readclassdescriptor并使用它来读取对象。但是,我严格按照示例进行操作但我的代码仍然报告(B类)的serialversionuid仍然不匹配。我什至尝试了另一种解决方案,其中我将B类版本2的serialversionuid“注入(inject)”到B类v1的数据中,然后使用objectinputstream读取,但我不能在保存 B 类 v1 对象的文件中找到serialversionuid(使用十六进制查看器/编辑器)..我有什么想法可以克服这个问题吗?谢谢

最佳答案

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

serialVersionUID=-1023774639622504485 local class serialVersionUID=1

您知道,如果您将serialVersionUID更改为-1023774639622504485L或其他任何内容,它将与您当前的版本匹配。这将使您能够通过 uid 检查。

关于java - 覆盖java序列化不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12437445/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com