シリアル化または逆シリアル化できるクラスを報告します。

あるクラスが Serializable インターフェイスをサポートし、その readObject() メソッドと writeObject() メソッドが常に例外をスローするように定義されていない場合、そのクラスはシリアル化できます。 Serializable クラスは、安全に使用することを目的としたコードでは危険な場合があります。

例:


  class DeserializableClass implements Serializable { // クラスに例外をスローする 'writeObject()' メソッドが含まれていません
    private int sensitive = 736326;

    private void readObject(ObjectInputStream in) {
        throw new Error();
    }
}

クイックフィックス適用後:


  class DeserializableClass implements Serializable {
    private int sensitive = 736326;

    private void readObject(ObjectInputStream in) {
        throw new Error();
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
        throw new java.io.NotSerializableException("DeserializableClass");
    }
  }

このインスペクションは、次のオプションを使用して構成できます。