Java 序列化,类的演化

Java 序列化,类的演化,java,oop,serialization,object,Java,Oop,Serialization,Object,我需要对一个对象进行序列化并将其存储在磁盘上。我使用了Java内置的,只要类没有太多变化,就可以很好地工作。如果我开始在课堂上捣乱,它就会停止工作 这里有哪些选项?基本上,如果我们有一个更新,我不想破坏所有用户的数据文件 到目前为止,我已经尝试了XML序列化(也有同样的问题)。还尝试“手动滚动”配置/数据文件。基本上,将所有内容输出到XML中,加载它,然后根据配置文件创建一个新对象。这似乎工作得很好,但要把所有的东西都转换成它需要很长时间,因为这需要大量的手工工作 还有其他选择吗 (非常支持向前

我需要对一个对象进行序列化并将其存储在磁盘上。我使用了Java内置的,只要类没有太多变化,就可以很好地工作。如果我开始在课堂上捣乱,它就会停止工作

这里有哪些选项?基本上,如果我们有一个更新,我不想破坏所有用户的数据文件

到目前为止,我已经尝试了XML序列化(也有同样的问题)。还尝试“手动滚动”配置/数据文件。基本上,将所有内容输出到XML中,加载它,然后根据配置文件创建一个新对象。这似乎工作得很好,但要把所有的东西都转换成它需要很长时间,因为这需要大量的手工工作

还有其他选择吗

  • (非常支持向前和向后兼容性,但您必须编写自己的映射代码)

  • 首先,您需要彻底阅读。

    我非常相信(通过艰苦的学习)为我的序列化对象提供持久代理。高效Java有一整章讨论如何实现它们

    我这样做的方式是使用一个内部类,该类在其构造函数中接受我的对象,并相应地设置它的内部字段。随着真实对象的发展,您可以向代理添加新字段,或者创建一个全新的代理(保留旧代理以实现向后兼容性)

    有关更多信息,请参阅