Inspectopedia Help

Suspicious usage of compare method

Reports comparisons of the result of 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.


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"); } }

Locating this inspection


Can be used to locate inspection in e.g. Qodana configuration files, where you can quickly enable or disable it, or adjust its settings.

Via Settings dialog

Path to the inspection settings via IntelliJ Platform IDE Settings dialog, when you need to adjust inspection settings directly from your IDE.

Settings or Preferences | Editor | Inspections | Java | Probable bugs

New in 2017.2


By default bundled with

IntelliJ IDEA 2024.1, Qodana for JVM 2024.1,

Can be installed with plugin

Java, 241.18072

Last modified: 18 June 2024