Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中的类序列化:更改字段名或getter/setter名称后的兼容性_Java_Serialization - Fatal编程技术网

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

Java中的类序列化:更改字段名或getter/setter名称后的兼容性,java,serialization,Java,Serialization,假设我们在Java中有一个可序列化的类,并且我们更改了该类成员和/或其getter或setter的名称(仅名称),这会导致兼容性错误吗?重命名字段相当于删除规范中的部分 5.6.1不兼容的变更 对类的不兼容更改是那些不能保证互操作性的更改。演化类时可能发生的不兼容更改包括: 删除字段-如果在类中删除字段,则写入的流将不包含其值。当流被早期类读取时,字段的值将设置为默认值,因为流中没有可用的值。但是,该默认值可能会对早期版本履行其合同的能力产生不利影响 是的,它可以。序列化程序如何知道它与其他内容

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

重命名字段相当于删除规范中的部分

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

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


是的,它可以。序列化程序如何知道它与其他内容相同?名称和类型是它的全部。如果您标记了名称已更改的成员,则不应存在兼容性错误。