1

Javaクラスをシリアル化可能として定義すると、Eclipseは、一部のメンバーがシリアル化可能ではないことを警告しません。これにより、アプリケーションが実行時にシリアル化に失敗する可能性があります。

メンバーの検証を有効にする設定が見つかりませんでした。

SerializableクラスのメンバーもSerializableであることを検証する方法について何かアイデアはありますか?

ありがとう

4

2 に答える 2

0

実行時にシリアライズ可能なオブジェクトを指すことになる、シリアライズ可能でない型への参照を持つことは正当です。


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 で失敗します。

于 2011-03-30T12:52:26.637 に答える
0

これを Eclipse で直接実行する方法を誰も思いつかないと仮定すると、FindBugs プラグインをお勧めします。このプラグインには、SerializableIdiom心配している問題を強調する必要があると思われるルールがあります。

必要に応じて、ルールの詳細を追加できます。ただし、ここに表示するためにフォーマットするのは面倒なので、元の回答に追加することをあきらめました

于 2011-03-30T10:15:52.380 に答える