readResolve() または writeReplace() メソッドが protected で宣言されていない java.io.Serializable を実装しているクラスを報告します。

readResolve() および writeReplace() メソッドを private で宣言すると、サブクラスが警告を出すことなくこれらのメソッドを無視するように強制できます。しかし、public で宣言している場合は信頼できないコードからの呼び出しが可能になってしまいます。

包含クラスが final で宣言されている場合、これらのメソッドは private で宣言できます。

例:


  class ClassWithSerialization implements Serializable {
    public Object writeReplace() { // 警告: 'writeReplace()' は protected と宣言されていません
        ...
    }
  }