2009-03-05 2 views
9

重複What is a serialVersionUID and why should I use it?シリアルバージョンのIDは何ですか?

現在、いくつかのJavaの作業にEclipseを使用しています。私のクラス名は黄色で下線が引かれています。私は、警告を抑制するか、ただちにシリアルIDを追加することができます。

私はどちらの方法も気にしません(または私は?)が、このシリアルIDは正確に何ですか?

ありがとう

答えて

14

Javaのシリアル化と関係があります。

クラスのフィールドが変更されると、クラスの他のバージョンをシリアル化解除できなくなります。試してみると、Javaは例外をスローします。

ただし、フィールドの変更は問題にならない場合があり、「とにかくシリアル化を解除する」と言いたいことがあります。これを行うには、このシリアル番号を定義します。 Javaでは、リフレクションではなくその番号を使用して、クラス定義が「異なる」かどうかを判断します。

最後に、独自のシリアライズ関数を定義することで、これを回避することができます。実際には、多くの主張者があなたに必要と主張しています。

+0

お返事ありがとうございます –

関連する問題