旧对象的Java反序列化

时间:2016-05-21 12:50:11

标签: java serialization deserialization

我在项目中序列化和反序列化对象时遇到问题。我正在将对象写入name.dat文件。 但是每当我在Name类中进行更改时,我都可以不再反序列化它,因为它是两个不同的对象。

有什么方法吗?

1 个答案:

答案 0 :(得分:1)

您最好的选择是:

  1. 不要改变你的课程: - )
  2. 每次更改课程时丢弃所有序列化对象。
  3. 不要使用Java对象序列化。
  4. 鉴于1)和2)可能不可能,应该认真考虑选项3)。 Java序列化有多种替代方案,具体取决于您持久存储的数据的性质。其中包括:

    • 使用Java属性文件
    • 将数据存储在经典数据库中(使用SQL和JDBC API)
    • 使用对象关系数据库映射,例如Hibernate
    • 使用XML或JSON和"绑定"技术,以便您可以序列化/反序列化POJO。

    最后,可以使用Java对象序列化实现类版本控制。但是,它很棘手。如果你不断改变课程,那就不会令人愉快。首先阅读Versioning of Serializable Objects