java.lang.Comparator를 구현하지만 java.io.Serializable을 구현하지 않는 클래스를 보고합니다.

java.util.TreeMap 또는 java.util.TreeSet과 같은 순서가 있는 컬렉션을 생성하기 위해 직렬화할 수 없는 비교자가 사용되는 경우 컬렉션 또한 직렬화할 수 없습니다. 이는 예기치 않은 진단하기 어려운 버그를 초래할 수 있습니다.

java.lang.Comparator의 하위 클래스는 보통 상태가 없으므로 간단히 직렬화 가능한 것으로 표시하는 것만으로 그러한 문제를 피할 수 있습니다.

예:


  class Foo implements Comparator { // 경고
      @Override
      public int compare(Object o1, Object o2) {
          /* ... */
      }
  }

빠른 수정을 적용한 후:


  class Foo implements Comparator, Serializable { // 경고 없음
      @Override
      public int compare(Object o1, Object o2) {
          /* ... */
      }
  }