java.io.Serializable을 구현하는 클래스의 readResolve() 또는 writeReplace() 메서드가 protected로 선언되어 있지 않은 경우를 보고합니다.

readResolve()writeReplace() 메서드를 private으로 선언하면 하위 클래스가 확인 없이 이 메서드를 무시할 수 있습니다. 반면 public으로 선언하면 신뢰할 수 없는 코드에 의해 호출될 수 있습니다.

포함하는 클래스가 final로 선언된 경우 이 메서드를 private으로 선언할 수 있습니다.

예:


  class ClassWithSerialization implements Serializable {
    public Object writeReplace() { // 경고: 'writeReplace()'가 protected로 선언되지 않았습니다
        ...
    }
  }