Java에서 equals() 메서드를 재정의하는 방법
equals() 메서드 재정의는 사용자 정의에 대한 동등 비교 동작을 사용자 정의하는 데 필수적입니다. 자바의 객체. 다음은 이를 효과적으로 수행하는 데 도움이 되는 포괄적인 가이드입니다.
문제:
주어진 스니펫에서 같음을 사용하여 연령 필드를 비교하려고 할 때 오류가 발생했습니다( ), 이는 String 객체용으로 설계되었습니다. 정수 값에는 == 연산자를 사용해야 합니다.
해결 방법:
이 오류를 해결하려면 == 연산자를 사용하여 나이와 같은 기본 데이터 유형을 비교하세요. 수정된 코드는 다음과 같습니다.
public boolean equals(People other){ boolean result; if((other == null) || (getClass() != other.getClass())){ result = false; } // end if else{ People otherPeople = (People)other; result = name.equals(other.name) && age == other.age; } // end else return result; } // end equals
추가 설명:
1. 프로세스 재정의:
2. Null 확인:
3. 클래스 비교:
4. 사용자 정의 비교 논리:
예:
제공된 예는 Person 클래스의 equals()를 재정의하고 이름과 나이가 동일한지 비교합니다.
public boolean equals(Object obj) { if (obj == null) { return false; } if (obj.getClass() != this.getClass()) { return false; } final Person other = (Person) obj; if ((this.name == null) ? (other.name != null) : !this.name.equals(other.name)) { return false; } if (this.age != other.age) { return false; } return true; }
결론:
재정의 equals() 메소드를 사용하면 사용자 정의 객체에 대한 사용자 정의 동등 비교를 정의할 수 있습니다. 제공된 단계와 예시를 주의 깊게 따르면 특정 속성을 기준으로 객체를 효과적으로 비교할 수 있습니다.
위 내용은 Java에서 equals() 메서드를 올바르게 재정의하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!