It is the sign, rather than the magnitude of the value returned from compareTo
that matters. Returning Integer.MIN_VALUE
does not convey a higher degree of inequality, and doing so can cause errors because the return value of compareTo
is sometimes
inversed, with the expectation that negative values become positive. However, inversing Integer.MIN_VALUE
yields
Integer.MIN_VALUE
rather than Integer.MAX_VALUE
.
public int compareTo(MyClass) { if (condition) { return Integer.MIN_VALUE; // Noncompliant }
public int compareTo(MyClass) { if (condition) { return -1; }