我的组织使用自定义序列化技术,我们使用输出流迭代地存储对象。我遇到了以下问题:
Parent
和Child
类实现Serializable
. Parent
类有字段a,b,c
,Child
类有e
。我将字段添加d
到Parent
并更新了父序列化,现在我们的旧客户端无法Child
正确读取序列化代码。这是因为Child
序列化代码如下:
OutputStream in = getCurrentOutStream();
current_serialization_num = readVersionNum(in) // The version num is similar to Java's UID and is updated when fields are added.
readParent(in)
e = readField(in)
由于序列化是通过 a 完成的DataOutputStream
,好的 XML 阅读器无法处理这个问题。我对这个问题有一个丑陋的解决方案,但它根本不会很好地扩展,所以我宁愿不通过介绍它来污染读者的思想。但是,我真的很想听听其他人如何处理类似的情况。