总体来看,兼容性很好,增加字段不会报错。
———————————————— 场景描述:一个类在A端序列化后传递至B端进行反序列化。 注意声明变量serialVersionUID
1. 当版本号一致,A端新增字段 反序列化成功,但A端新增的字段将会被忽略。
2. 当版本号一致,A端减少字段 反序列化成功,但B端相对于A端多出的字段将会被赋予默认值,其中引用默认值:null, 基本类型默认值:0, boolean默认值:false。
3. 当版本号一致,B端新增字段 反序列化成功,但B端新增的字段将会被赋予默认值。
4. 当版本号一致,B端减少字段 反序列化成功,B端减少的字段将会被忽略。
5. 当版本号不一致,其他相同 反序列化失败。
6. 版本号一致,A端和B端实例变量类型不同 反序列化失败,这时候需要更改serialVersionUID。
4.1 其他注意点 当服务器客户端进行序列化和反序列化时要注意双方序列化类除类名相同外包名也需相同否则会报错。 序列化并不保存静态变量。 ———————————————— 原文链接:https://blog.csdn.net/weixin_44298385/article/details/122224364
|