Inspectopedia Help

Non-final field referenced in 'equals()'

Reports implementations of equals() that access non-final variables. Such access may result in equals() returning different results at different points in the object's lifecycle, which may in turn cause problems when using the standard collections classes.


public class Person { private String lastName; @Override public boolean equals(Object obj) { ... Person other = (Person) obj; if (lastName == null) { if (!lastName.equals(other.lastName)) { return false; ... } } }

Inspection Details

Available in:

IntelliJ IDEA 2023.3, Qodana for JVM 2023.3


Java, 233.SNAPSHOT

Last modified: 13 July 2023