首页 > 解决方案 > Java 中的类序列化:更改字段名称或 getter/setter 名称后的兼容性

问题描述

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

标签: javaserialization

解决方案


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

5.6.1 不
兼容的更改 对类的不兼容更改是那些无法保证互操作性的更改。进化类时可能发生的不兼容更改是:

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


推荐阅读