public class ClassComparator extends Object implements Comparator<Class>, Serializable
Constructor and Description |
---|
ClassComparator()
Defaultconstructor.
|
Modifier and Type | Method and Description |
---|---|
int |
compare(Class c1,
Class c2)
Compares its two arguments for order.
|
boolean |
isComparable(Class c1,
Class c2)
Checks, whether the given classes are comparable.
|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
comparing, comparing, comparingDouble, comparingInt, comparingLong, equals, naturalOrder, nullsFirst, nullsLast, reversed, reverseOrder, thenComparing, thenComparing, thenComparing, thenComparingDouble, thenComparingInt, thenComparingLong
public int compare(Class c1, Class c2)
Note: throws ClassCastException if the arguments' types prevent them from being compared by this Comparator. And IllegalArgumentException if the classes share no relation. The implementor must ensure that sgn(compare(x, y)) == -sgn(compare(y, x)) for all x and y. (This implies that compare(x, y) must throw an exception if and only if compare(y, x) throws an exception.)
The implementor must also ensure that the relation is transitive: ((compare(x, y)>0) && (compare(y, z)>0)) implies compare(x, z)>0.
Finally, the implementer must ensure that compare(x, y)==0 implies that sgn(compare(x, z))==sgn(compare(y, z)) for all z.
It is generally the case, but not strictly required that (compare(x, y)==0) == (x.equals(y)). Generally speaking, any comparator that violates this condition should clearly indicate this fact. The recommended language is "Note: this comparator imposes orderings that are inconsistent with equals."
compare
in interface Comparator<Class>
c1
- the first object to be compared.c2
- the second object to be compared.public boolean isComparable(Class c1, Class c2)
c1
- the first class to comparec2
- the second class to compare