从文件加载(不兼容的类)

时间:2013-09-17 15:05:47

标签: java objectinputstream objectoutputstream

这是我给Stackoverflow的第一篇文章,请温柔:) 我是一名初学java开发人员,致力于工作的应用程序,其中类状态需要保存到网络驱动器。 我发现最容易单独保存属性(只有2个),因为一个属性在文件中被访问和修改(保存和加载)比另一个更多。 另一方面,我想研究该程序,并在它被大量使用时进行改进。 问题是,如果我在类实现中更改了某些内容,那么它与从该类的先前版本的文件加载的状态不再兼容。

一个例子: 老班: - 名称 - 地址 - 电话号码

新课程: - 名称 - 地址 - 电话号码 - 年龄

将旧类从文件加载到新类会导致异常抛出,因为加载的类与新类不兼容。 它有什么解决方案吗?

提前感谢您的帮助! :)

添加:哦,我正在使用ObjectOutputStream来保存文件。

1 个答案:

答案 0 :(得分:0)

将状态存储为XML。新版本中的JAXB可以完全与注释存储/加载类对象到XML中。

这会留下更多控制权(=需要更多纪律来代码 要保留的内容)。 但很容易。也可以在开发过程中修改XML一点。 (您无需在XSD上使用完整的JAXB。)