java - 在客户端使用额外变量但版本 ID 相同的序列化和反序列化

标签 java serialization deserialization

假设我在服务器端有 A 类,有两个变量。

class A implements Serializable {
    public static final long serialVersionUID = 1234;
    String a;
    String b;
}

在客户端,我有相同的类和三个变量但相同的版本 ID。

class A implements Serializable {
    public static final long serialVersionUID = 1234;
    String a;
    String b;
    String c;
}

这里发生了什么?对其行为有点困惑。

最佳答案

这是一个 stream-compatible change .如果没有它的一侧接收到额外值,则将丢弃该值,或者如果从没有它的一侧发送,则在有它的一侧将其设置为默认值。

关于java - 在客户端使用额外变量但版本 ID 相同的序列化和反序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49993443/

相关文章:

java - 这个 Set 和 Hashset 以及 List 组合是如何工作的?

xml - 防止 IEnumerable 和 ICollection<T> & 继承类型的 XML 序列化

serialization - 如何在 Avro 模式中表示重复字段?

java - 如何使用 Gson 反序列化继承公共(public)基类的类型?

WCF - 序列化继承的类型

java - 如何读取java中损坏的序列化对象

java - 无法将值放入 M​​DC

java - 使用 Maven 进行 Jenkins Spring Build 失败,但在本地构建时可以工作

java - 组的唯一 ID 在多个域中保持唯一

c# - 将 C# 字符串编码为 Javascript 字符串的注意事项