我知道serialVersionUID用于对可序列化类进行版本控制,因此,如何使用新类加载旧的序列化对象?
我发现的唯一相关问题是: how to discover serialVersionUID of serialized objects
但是,我仍然可以将旧对象反序列化为新更新类的实例?
答案 0 :(得分:0)
您可以将serialVersionUID设置为所需的任何值(通常在错误消息中可以看到预期值与实际值)。把字段放在
中 private static final long serialVersionUID = 1L;
(用旧值替换1),您将能够读取旧数据。
如果你需要同时阅读新格式和旧格式并且它们实际上有所不同,那么最好似乎为该类的新版本提供一个新名称使用resolveObject将旧格式转换为新格式如果leagacy类出现在流中。