Java中的类序列化:更改字段名或getter/setter名称后的兼容性



假设我们在Java中有一个Serializable类,并且我们更改了该类的一个成员和/或其getter或setter的名称(仅名称(,这会导致兼容性错误吗?

重命名字段相当于删除规范中不兼容更改部分下的字段。

不兼容的更改
类的不兼容更改是指无法保证互操作性的更改。在进化一个类时可能发生的不兼容的变化是:

删除字段-如果在类中删除字段,则写入的流将不包含其值。当流被早期的类读取时,字段的值将被设置为默认值,因为流中没有可用的值。但是,此默认值可能会对早期版本履行合同的能力产生不利影响。

最新更新