从类中删除字段并更新现有的序列化文件

时间:2016-07-28 00:34:44

标签: java serialization deserialization

我已经有一个包含类X实例的序列化文件。 我现在决定通过删除不再需要的字段来修改类X的代码。相应更新现有序列化文件的最佳方法是什么?

到目前为止,我唯一想到的解决方案是:

  1. 创建一个与X相同但没有不需要的字段的临时类Y.
  2. 从文件中反序列化X实例,构造等效的Y实例,并将它们序列化为新文件。
  3. 从类X的代码中删除不需要的字段,然后反向执行第2步。
  4. 这是一个可怕的混乱(特别是因为这种情况对我来说很常见)。有更好的方法吗?

    谢谢!

1 个答案:

答案 0 :(得分:2)

您无需对文件执行任何操作。通过反序列化到已修改的类将忽略已删除的字段数据。只需确保您不会打扰serialVersionUID的值,如果您还没有提供,请在进行更改之前使用serialver工具的输出立即执行此操作。< / p>

您需要好好了解Versioning chapter of the Object Serialization Specification