2017-09-20 28 views
0

オブジェクトのシリアル化は、Java8からJava7に下位互換性がありますか?シリアライズ互換性Java 7/8

Javaのシリアル化仕様(http://docs.oracle.com/javase/8/docs/platform/serialization/spec/serialTOC.html)は、クラスAをJava8アプリケーションにコンパイルし、Aオブジェクトをファイルにシリアル化し、Java7アプリケーションでそのオブジェクトを逆シリアル化します。クラスAの同じバージョンでコンパイルされた)。

誰かが異なるメジャーバージョンを具体的に扱う仕様の正確な部分を指摘できますか?何もない場合、どの部分から上記の互換性を推測できますか?

ありがとうございます!

注:仕様のセクション5.1は約クラスのバージョン互換性ですが、のバージョン互換性はありません。Javaバージョン互換性。

+5

確かに。それはまさに 'serialVersionUID'が明示しているものです。 – Holger

+0

@Holger確かに、質問に 'serialVersionUID'については何もありません。 – EJP

+0

@EJP:質問が完全に書き直される前だった。私は、投稿が編集可能で、コメントの時間と編集の時間を比較する方法を知ってStackoverflowと十分な経験を持っている必要があります... – Holger

答えて

2

はい。この仕様はJava 7と8(または9)の間で変更されておらず、Object Versioningの章に記載されている場合を除いて互換性が保証されています。これについては、すべての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