在客户端使用额外变量进行序列化和反序列化,但版本ID相同

时间:2018-04-24 04:28:15

标签: java serialization deserialization

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

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

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

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

这里发生了什么?对它的行为感到困惑。

1 个答案:

答案 0 :(得分:4)

这是stream-compatible change。如果被没有它的那一方收到,那么额外的价值将被丢弃,或者如果从没有它的一方发送,那么额外价值将被设置为它的默认值。