【问题标题】:Serialization compatibility Java 7/8序列化兼容性 Java 7/8
【发布时间】:2018-03-01 13:19:42
【问题描述】:

对象序列化是否从 Java8 向后兼容到 Java7?

即,Java 序列化规范 (http://docs.oracle.com/javase/8/docs/platform/serialization/spec/serialTOC.html) 是否保证以下工作:我将 A 类编译到 Java8 应用程序中,将 A 的对象序列化(例如,到文件中)并在 Java7 应用程序中反序列化该对象(与A类的相同版本编译)。

有人可以指出具体针对不同主要版本的规范的确切部分吗?如果没有,我可以从哪部分推断出所说的兼容性?

注意:规范的第 5.1 节是关于 class 版本兼容性的,而不是关于 Java 版本兼容性的。

【问题讨论】:

  • 当然。这正是明确的serialVersionUID 的用途。
  • @Holger 当然,但问题中没有关于serialVersionUID 的内容。
  • @EJP:在问题被完全重写之前是这样。我想,你应该有足够的 Stackoverflow 经验,知道帖子可以编辑,以及如何比较编辑时间和评论时间……

标签: java serialization java-8 java-7 compatibility


【解决方案1】:

是的。该规范在 Java 7 和 8(或 9)之间没有改变,并且它保证兼容性,除了对象版本控制一章中提到的情况。另请注意,每个 javax.swing 类中都有关于此的警告。

【讨论】:

    【解决方案2】:

    有人能指出具体针对不同主要版本的规范的确切部分吗?如果没有,我可以从哪部分推断出所说的兼容性?

    http://docs.oracle.com/javase/8/docs/platform/serialization/spec/protocol.html#a5849 https://docs.oracle.com/javase/8/docs/platform/serialization/spec/protocol.html https://docs.oracle.com/javase/7/docs/platform/serialization/spec/protocol.html

    您可以看到在这两种情况下协议版本都是 6:

    Java 对象序列化规范 6.0版

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-04-11
      • 1970-01-01
      • 2013-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-03
      相关资源
      最近更新 更多