> Java > java지도 시간 > Java에서 객체 비교를 위해 'equals' 메서드를 올바르게 재정의하려면 어떻게 해야 합니까?

Java에서 객체 비교를 위해 'equals' 메서드를 올바르게 재정의하려면 어떻게 해야 합니까?

Linda Hamilton
풀어 주다: 2024-12-22 18:32:09
원래의
877명이 탐색했습니다.

How Do I Correctly Override the `equals` Method for Object Comparison in Java?

Java의 객체 동등성 이해

Java에서 두 객체의 동등성을 비교하기 위해 종종 equals 메소드를 사용합니다. 설명된 시나리오의 목표는 People 객체 간의 비교를 용이하게 하기 위해 이름 및 나이 필드가 있는 People 클래스의 equals 메서드를 재정의하는 것입니다.

제시된 초기 구현에서는 age 필드에 대해 equals 메서드를 사용했습니다. 정수 유형입니다. 그러나 지적한 대로 equals 메소드는 문자열 객체를 비교하기 위해 특별히 설계되었습니다.

해결책: 정수 필드 비교

정수 필드를 비교하려면 다음을 사용하는 것이 좋습니다. == 연산자 대신 == 메소드를 사용하세요. == 연산자는 equals 메소드를 호출하는 대신 기본 데이터 유형의 값을 직접 비교합니다.

Equals 올바르게 구현

Equals 메소드의 올바른 구현 People 클래스는 다음과 같아야 합니다:

@Override
public boolean equals(Object obj) {
    if (obj == null) {
        return false;
    }

    if (obj.getClass() != this.getClass()) {
        return false;
    }

    final People other = (People) obj;
    if ((this.name == null) ? (other.name != null) : !this.name.equals(other.name)) {
        return false;
    }

    if (this.age != other.age) {
        return false;
    }

    return true;
}
로그인 후 복사

여기서 구현:

  • 먼저 전달된 객체가 null인지, 다른 클래스인지 또는 null 이름 필드가 있는지 확인합니다.
  • 해당 확인이 통과되면 == 연산자를 사용하여 비교합니다. 연령 필드.
  • 모든 비교가 true로 평가되면 true를 반환하고, 그렇지 않으면 false를 반환합니다.

위 내용은 Java에서 객체 비교를 위해 'equals' 메서드를 올바르게 재정의하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿