、静的および過渡フィールドがシリアライズさではありません。しかし、静的フィールドの初期化によって、生成されたserialVersionUIDが変更されることがわかりました。たとえば、static int MYINT = 3;
は、serialVersionUIDを変更します。この例では、異なるバージョンのクラスが異なる初期値を持つため、意味があります。なぜ初期化はserialVersionUIDを変更するのですか?たとえば、static String MYSTRING = System.getProperty("foo");
では、serialVersionUIDも変更されます。JavaシリアルJavaでは
。具体的には、私の質問は、なぜこの方法で初期化がserialVersionUIDをを変化させるんです。私がヒットした問題は、システムプロパティ値(getProperty)で初期化された新しい静的フィールドを追加したことです。この変更により、リモート呼び出しでシリアル化例外が発生しました。