Javaクラスをシリアル化可能として定義すると、Eclipseは、一部のメンバーがシリアル化可能ではないことを警告しません。これにより、アプリケーションが実行時にシリアル化に失敗する可能性があります。
メンバーの検証を有効にする設定が見つかりませんでした。
SerializableクラスのメンバーもSerializableであることを検証する方法について何かアイデアはありますか?
ありがとう
Javaクラスをシリアル化可能として定義すると、Eclipseは、一部のメンバーがシリアル化可能ではないことを警告しません。これにより、アプリケーションが実行時にシリアル化に失敗する可能性があります。
メンバーの検証を有効にする設定が見つかりませんでした。
SerializableクラスのメンバーもSerializableであることを検証する方法について何かアイデアはありますか?
ありがとう
実行時にシリアライズ可能なオブジェクトを指すことになる、シリアライズ可能でない型への参照を持つことは正当です。
import java.io.Serializable;
public class Test implements Serializable {
private Object data;
public void setData(Object data) {
this.data = data;
}
}
あなたが後者のようなものを書く場合:
Test t1 = new Test();
Test t2 = new Test();
t1.setData("Serializable");
t2.setData(new Object());
t1 のシリアル化には問題はありませんが、t2 で失敗します。
これを Eclipse で直接実行する方法を誰も思いつかないと仮定すると、FindBugs プラグインをお勧めします。このプラグインには、SerializableIdiom
心配している問題を強調する必要があると思われるルールがあります。
必要に応じて、ルールの詳細を追加できます。ただし、ここに表示するためにフォーマットするのは面倒なので、元の回答に追加することをあきらめました