A non-serializable Comparator
can prevent an otherwise-Serializable
ordered collection from being serializable. Since the
overhead to make a Comparator
serializable is usually low, doing so can be considered good defensive programming.
public class FruitComparator implements Comparator<Fruit> { // Noncompliant int compare(Fruit f1, Fruit f2) {...} boolean equals(Object obj) {...} }
public class FruitComparator implements Comparator<Fruit>, Serializable { private static final long serialVersionUID = 1; int compare(Fruit f1, Fruit f2) {...} boolean equals(Object obj) {...} }