Ale*_*tin 5 java serialization deserialization
我有这样的课
class MyClass implements MyInterface, Serializable {
private static final serialVersionUID = 42;
...
}
interface MyInterface {
void A();
void B();
}
Run Code Online (Sandbox Code Playgroud)
我已经在数据库中保存了一些MyClass的序列化实例.
现在,我正在向MyInterface添加一个新函数,因此它变为:
interface MyInterface {
void A();
void B();
void C();
}
Run Code Online (Sandbox Code Playgroud)
我已经C()在MyClass中实现了.
我以前的序列化实例是否会反序列化为新类没有问题?我想是的,但如果可能的话,想要确认一下解释.
是的,只要serialVersionUID保持不变,添加新函数就不会有问题,因为Java在序列化对象时只保留有关字段的信息。
\n\n\n\n\n\n[序列化对象的]状态是通过使用 writeObject 方法将各个字段写入 ObjectOutputStream\xe2\x80\xa6 来保存的
\n
| 归档时间: |
|
| 查看次数: |
38 次 |
| 最近记录: |