0

私はPilotクラスとそのクラスのインスタンスを持っています: bobThePilot.

にシリアル化bobThePilotし、Stringそれを自分のハードディスクにコピーします。次に、新しいプロジェクトを作成し、Pilotクラスを再作成します (以前とまったく同じです)...

そしてnewBobThePilot、ディスクから取得した文字列をデシリアライズして、この新しいプロジェクトを作成します。しかし、それは失敗します。という名前のものが原因だと誰もが言いましたserialVersionUID

それを行うことは可能ですか(異なるクラスでシリアル化および逆シリアル化します(まったく同じクラスですが)?もしそうなら、どのように?

ありがとう。

道徳:

  1. serialVersionUID 属性をシリアル化されたクラスに追加します 例:
    private static final long serialVersionUID = 1L;
  2. implements serializableシリアル化されたクラスに関連するすべてのクラス

4

2 に答える 2

0

シリアル バージョン ID を指定しない場合、シリアル化ランタイムは、クラスのさまざまな側面に基づいて、そのクラスのデフォルトの serialVersionUID 値を計算します。クラスは同じですが、JDK のバージョンが異なれば、異なる serialversionuid を作成できます。

于 2014-07-01T21:36:04.847 に答える