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

问题描述

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

解决方法

重命名字段等同于删除,该字段属于规范中的Incompatible Changes部分。

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

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

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...