gpt4 book ai didi

Java 序列化 : Any solution if serialVersionUID is updated wrong and already released.

转载 作者:行者123 更新时间:2023-12-04 05:12:28 25 4
gpt4 key购买 nike

我们有一个非常老的类,它没有 serialVersionUID。

4 年前,有人使用随机值向此类添加了 serialVersionUID。他应该使用serialver工具找到该值并在添加serialVersionUID时使用它,但事实并非如此。

有客户同时使用此类的两个版本。

现在,如果我想反序列化旧客户的对象,有什么出路。我无法更改当前的 serialVersionUID,因为新客户会受到影响。

最佳答案

您必须自己编写 readObject()可以处理不同 UID 的方法。

Versioning of Serializable Objects ”解释了 UID 的含义以及规则是什么。

This answer goes into more details .

我试图找到一个很好的例子如何写 readObject()对于某些具有多个 UID 但找不到的对象。在 Joshua Bloch 的“Effective Java”中甚至没有一个例子。它只是说“如果你改变了 UID,你会得到一个错误”,而不是如何优雅地处理这个错误。

这个问题至少接近:How to deserialize an object persisted in a db now when the object has different serialVersionUID

关于Java 序列化 : Any solution if serialVersionUID is updated wrong and already released.,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14729159/

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