Back to Intellij Community

EqualsUsesNonFinalVariable

java/java-impl/resources/inspectionDescriptions/EqualsUsesNonFinalVariable.html

2025.3-rc-2564 B
Original Source

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.

Example:

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;
      ...
      }
    }
  }