final이 아닌 변수에 액세스하는 equals() 구현을 보고합니다. 이러한 액세스를 사용하면 equals()이 객체 수명 주기의 각기 다른 시점에 다른 결과를 반환할 수 있어 표준 컬렉션 클래스 사용 시 문제가 발생할 수 있습니다.

예:


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