== Why is this an issue?

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.


=== Noncompliant code example

[source,java]
----
public class FruitComparator implements Comparator<Fruit> {  // Noncompliant
  int compare(Fruit f1, Fruit f2) {...}
  boolean equals(Object obj) {...}
}
----


=== Compliant solution

[source,java]
----
public class FruitComparator implements Comparator<Fruit>, Serializable {
  private static final long serialVersionUID = 1;

  int compare(Fruit f1, Fruit f2) {...}
  boolean equals(Object obj) {...}
}
----


ifdef::env-github,rspecator-view[]

'''
== Implementation Specification
(visible only on this page)

=== Message

* Make this class "Serializable".


endif::env-github,rspecator-view[]
