rspec/rules/S2167/java/rule.adoc

20 lines
708 B
Plaintext
Raw Normal View History

2021-04-28 16:49:39 +02:00
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++``.
== Noncompliant Code Example
----
public int compareTo(MyClass) {
if (condition) {
return Integer.MIN_VALUE; // Noncompliant
}
----
== Compliant Solution
----
public int compareTo(MyClass) {
if (condition) {
return -1;
}
----