我的问题是什么是实现升级过时对象的好方法?
例如假设你有这样一个类:
public class Foo() implements Serializable {
int a;
String b;
}
然后你序列化这个对象。稍后您可以通过添加以下方式为您的类添加更多功能:
...
int c;
...
您仍想保留序列化对象中的信息,但我知道如果您尝试反序列化它,将会发生冲突。那么有没有办法(可能通过检查 serialVersionUID)为 int c
设置一个值,知道它不存在?
谢谢
最佳答案
弃用现有类,创建一个具有新结构的新类,并在新类中实现一个可以获取旧对象并将其转换为新版本的构造函数。
假设您根据接口(interface)创建了旧类,您可以用新类实现相同的接口(interface),新对象仍将与旧类兼容。
关于java - 反序列化版本冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13508753/