代码之家  ›  专栏  ›  技术社区  ›  Vinay S Jain

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

  •  4
  • Vinay S Jain  · 技术社区  · 6 年前

    假设服务器端有一个类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;
    }
    

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

    1 回复  |  直到 6 年前
        1
  •  4
  •   user207421    6 年前

    这是一个 stream-compatible change 。如果从没有额外值的一方接收,则会丢弃额外值;如果从没有额外值的一方发送,则会在有额外值的一方将其设置为默认值。