【问题标题】:Load from file (incompatible classes)从文件加载(不兼容的类)
【发布时间】:2013-09-17 15:05:47
【问题描述】:

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

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

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

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

提前感谢您的帮助! :)

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

【问题讨论】:

    标签: java objectinputstream objectoutputstream


    【解决方案1】:

    将状态存储为 XML。 JAXB 在新版本中可以纯粹使用 annotations 将类对象存储/加载到 XML 中。

    这留下了更多的控制权(= 需要更多的纪律来编写什么来坚持)。 但是很容易。也可以在开发过程中对 XML 打补丁。 (您无需将完整的 JAXB 与 XSD 一起使用。)

    【讨论】:

      猜你喜欢
      • 2011-02-03
      • 1970-01-01
      • 2014-01-21
      • 2013-07-29
      • 2018-07-13
      • 2012-09-11
      • 2018-12-05
      • 2012-08-27
      • 1970-01-01
      相关资源
      最近更新 更多