问题描述
假设我们在Java中有一个Serializable类,并且我们更改了该类成员的名称(仅名称)和/或它的getter或setter,会导致兼容性错误吗?
解决方法
重命名字段等同于删除,该字段属于规范中的Incompatible Changes部分。
5.6.1不兼容的更改
对类的不兼容更改是指不能保持互操作性保证的那些更改。演化类时可能发生的不兼容更改是:
删除字段-如果在类中删除字段,则写入的流将不包含其值。当较早的类读取流时,该字段的值将设置为默认值,因为流中没有可用的值。但是,此默认值可能会对早期版本履行合同的能力产生不利影响。