|
|
1
52
serialVersionUID用于确定反序列化对象与类的当前版本之间的兼容性。
做 做 在基类中需要serialVersionUID。 要测试的代码:
运行main-in-Sub一次,使其创建并保存对象。然后更改基类中的serialVersionUID,注释掉main中保存对象的行(这样它就不会再次保存对象,您只需要加载旧的),然后再次运行它。这将导致异常
|
|
|
2
7
|
|
|
3
3
事实上,如果汤姆的链接丢失了
这使得拥有不同版本的JRE变得更加复杂。 |
|
|
4
2
从概念上讲,序列化数据如下所示:
因此,反序列化时,层次结构中任何类的版本不匹配都会导致反序列化失败。没有为接口存储任何内容,因此不需要为它们指定版本。
所以答案是:
还应注意以下事项:
简单地说:您可以对字段重新排序、添加和删除字段,甚至更改类层次结构。您不应该重命名字段或类(不会失败,但会像删除和添加该字段一样进行处理)。不能使用基元类型更改字段的类型,并且可以更改引用类型字段,前提是新类型可从所有序列化值中赋值。
|