我遇到了 Java 序列化问题。假设我有一个对象持久保存到文件系统。在后一版本中,我们如何根据对象结构的修改来更新文件的结构?
例如,如果我保存对象
A{int a; String b} to file
然后我将结构更改为 A{int a; String b, char c}
有什么方法可以根据 A 的最新版本更改以前保存的文件吗?
最佳答案
这是可能的。您需要使下一个版本向后兼容以前的版本。 Java 序列化规范中解释了这样做的方法:http://docs.oracle.com/javase/1.3/docs/guide/serialization/spec/version.doc.html .
但是,这个问题很好地说明了为什么使用 native Java 序列化来长时间保存对象通常不是一个好主意。如果您使用了一种特定的格式(XML、JSON 或其他),您可以轻松地读取和转换文件本身,或者能够读取具有不同序列化程序实现的文件的任何版本,从而更容易地从一个版本迁移给另一个。
关于java - 如何更新持久化 Java 对象的结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10382239/