java - Java 中的类序列化:更改字段名称或 getter/setter 名称后的兼容性
问题描述
假设我们在 Java 中有一个 Serializable 类,并且我们更改了该类成员和/或其 getter 或 setter 的名称(仅名称),它会导致兼容性错误吗?
解决方案
重命名字段相当于删除规范中不兼容更改部分下的字段。
5.6.1 不
兼容的更改 对类的不兼容更改是那些无法保证互操作性的更改。进化类时可能发生的不兼容更改是:
删除字段 - 如果在类中删除字段,写入的流将不包含其值。当流被较早的类读取时,该字段的值将设置为默认值,因为流中没有可用的值。但是,此默认值可能会对早期版本履行其合同的能力产生不利影响。
推荐阅读
- javascript - 如果函数内部发生错误,表单提交将停止
- r - 如何根据时间序列中的条件修改列?
- scala - 使用 Scala 案例类为 Spark Table 生成动态标题
- pandas - 使用 pandas 数据框将坐标字符串拆分为 X 和 Y 列
- pytorch - 当我使用 clone() 时仍然出现就地操作错误
- python - Django 中的搜索字段未重定向到详细视图
- c# - 在不等待的情况下调用异步方法会阻止其余 ASP.NET Core 服务的执行
- powershell - 使用 .Open 在 PowerShell 中使用 Microsoft Word COM 对象配置默认参数
- azure - 在 Azure 服务总线(pub-sub)中的主题下创建的订阅的侦听器(订阅客户端)的数量是否有任何限制?
- javascript - 我想在 Nodejs 中将一个值从一个文件导出到另一个文件