Generic comparator for use comparing lists of objects. Compares using the
following rules (in order):
- If both objects are Comparable, they are compared using the Comparable
interface
- If the object is convertible to a string using the javatools
ToStringManager the string representation is compared.
- toString is used to create a String representation that is then compared.
For non primitive objects, this Comparator is only designed to compare lists
that contains objects all of the same class.
When dealing with numbers, a String representation of a number, and its
Number representation will equate, as will different Number implementations.
i.e. "1"
, 1
and 1D
are all the same to
this Comparator, but all number representations will compare in numerical,
not alphabetical order so "10" is greater than "2".