직렬화되거나 역직렬화될 수 있는 클래스를 보고합니다.

클래스가 Serializable 인터페이스를 지원하며 readObject()writeObject() 메서드가 항상 예외를 던지도록 정의되어 있지 않은 경우 직렬화될 수 있습니다. 직렬화 가능한 클래스는 안전한 사용을 위해 목적으로 한 코드 내에서 위험할 수 있습니다.

예:


  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");
    }
  }

다음 옵션을 사용해 검사를 구성하세요.