Java
Suspicious usage of compare method
Warning
New
Last modified: 03 December 2024 Reports comparisons of the result of Comparator.compare()
or Comparable.compareTo()
calls with non-zero constants. By contract, these methods can return any integer (not just -1, 0 or 1), so comparing against particular numbers is bad practice. Some widely used comparison methods (e.g. String.compareTo()
) actually return values outside the [-1..1] range, and such a comparison may cause incorrect program behavior.
Example:
void validate(String s1, String s2) {
// Comparing to 1 is incorrect
if (s1.compareTo(s2) == 1) {
throw new IllegalArgumentException("Incorrect order");
}
}
After the quick-fix is applied:
void validate(String s1, String s2) {
if (s1.compareTo(s2) > 0) {
throw new IllegalArgumentException("Incorrect order");
}
}
- By ID
Can be used to locate inspection in e.g. Qodana configuration files, where you can quickly enable or disable it, or adjust its settings.
ComparatorResultComparison
New in 2017.2
Inspection Details | |
---|---|
By default bundled with: | |
Can be installed with plugin: | Java, 243.23126 |
Thanks for your feedback!
Was this page helpful?