Object comparison using '==', instead of 'equals()'
Reports code that uses ==
or !=
rather than equals()
to test for object equality.
Comparing objects using ==
or !=
is often a bug, because it compares objects by identity instead of equality. Comparisons to null
are not reported.
Array, String
and Number
comparisons are reported by separate inspections.
Example:
if (list1 == list2) {
return;
}
After the quick-fix is applied:
if (Objects.equals(list1, list2)) {
return;
}
Use the inspection settings to configure exceptions for this inspection.
Inspection options
Option | Type | Default |
---|---|---|
Ignore '==' between enum variables | Checkbox | true |
Ignore '==' between final class types without 'equals()' implementation | Checkbox | true |
Ignore '==' between objects of a type with only 'private' constructors | Checkbox | false |
Inspection Details | |
---|---|
Available in: | IntelliJ IDEA 2023.3, Qodana for JVM 2023.3 |
Plugin: | Java, 233.SNAPSHOT |
Last modified: 13 July 2023