8

データベースに 1 つの Java オブジェクトを保存し、数日後に JRE バージョンを変更しました。同じオブジェクトを読み取ろうとすると、次の例外が発生します。

Exception in thread "main" java.io.InvalidClassException:
SerializeMe; local class incompatible: stream classdesc
serialVersionUID = -6377573678240024862, local class serialVersionUID = -8204757486033751616

どうすればこれを取り除くことができますか?保存されたオブジェクトを取得するにはどうすればよいですか?

私を助けてください。

4

1 に答える 1

8

このクラスのソース コードに影響を与えることができ、JRE だけが変更された場合、古い JVM によってシリアライズされたオブジェクトをデシリアライズできる可能性が高くなります。逆シリアル化するクラスで次のフィールドを定義するだけです。

private static final long serialVersionUID = -6377573678240024862L;
于 2012-11-28T06:43:23.150 に答える