35 lines
856 B
Plaintext
35 lines
856 B
Plaintext
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
|
|
|
|
----
|
|
public class FruitComparator implements Comparator<Fruit> { // Noncompliant
|
|
int compare(Fruit f1, Fruit f2) {...}
|
|
boolean equals(Object obj) {...}
|
|
}
|
|
----
|
|
|
|
|
|
== Compliant Solution
|
|
|
|
----
|
|
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)
|
|
|
|
include::message.adoc[]
|
|
|
|
endif::env-github,rspecator-view[]
|