Kyl*_*yle 5 java serialization
如果我在Java中序列化一个对象,然后在java类中添加一个额外的字段,我就无法将该对象反序列化为修改后的类.
是否有一个序列化库或某种方式,我可以反序列化不那么严格,如果有一个额外的字段添加到类,那么它只是在反序列化旧版本的类时填充null?
Kat*_*one 7
你需要继续serialVersionUID上课.请查看Sun在本文中的 "版本控制"部分.
serialVersionUID
mik*_*era 5
你有很多潜在的选择.
您可以使用图形序列化库来定义和管理您的格式,例如Google的协议缓冲区或Kryo.我相信这两者都内置了对版本控制的支持.
您可以编写自己的自定义序列化代码并明确处理版本 - 例如,序列化为XML等灵活格式.读取XML时,如果未指定特定字段,则可以将其配置为使用默认值.
或者您可以以"灵活"的方式设计您的类,例如将所有字段存储在HashMap中并由字符串索引.根据您的尝试,这可能是一个方便的选择.
Wil*_*ung 0
实施Externalized,你就可以做任何你想做的事。这将串行/反序列化的责任完全放在被序列化的类上。
归档时间:
15 年,7 月 前
查看次数:
1189 次
最近记录: