序列化一个可能在以后更改的java对象

4 java serialization

我需要序列化一个可能在以后更改的java对象,就像可以添加或删除一些变量一样.如果这仍然是唯一的出路,我应该采取什么样的预防措施?

Mic*_*rdt 9

  • 您肯定需要从头开始添加serialVersionUID字段.
  • 更改可能会使序列化对象不兼容.添加和删​​除字段可能会导致违反类合同(直到抛出异常点)反序列化字段不在预期的类版本中的实例时 - 该字段设置为类型的默认值那个案子; 最可能的问题是NullPointerException.这可以通过实现readObject()和writeObject()来避免.其他更改(例如更改字段的类型)可能导致反序列化完全失败.