1. Java序列化允许重构
Java对象在序列化后,如果对该对象所属类进行重构,比如新增属性字段,则可用重构后的类把已有流(重构前的类序列化生成的流)中的对象还原出来,还原后生成的对象也拥有重构后新增的属性字段且值为null。相反,重构后生成的序列化数据也可用来还原为重构前的类对象。注意:这一系列操作,要保证重构前后的两个类拥有相同的序列化版本hash即serialVersionUID。参考代码如下:
Java对象在序列化后,如果对该对象所属类进行重构,比如新增属性字段,则可用重构后的类把已有流(重构前的类序列化生成的流)中的对象还原出来,还原后生成的对象也拥有重构后新增的属性字段且值为null。相反,重构后生成的序列化数据也可用来还原为重构前的类对象。注意:这一系列操作,要保证重构前后的两个类拥有相同的序列化版本hash即serialVersionUID。参考代码如下: