Java에서 Equals 메서드 재정의
Java에서 equals 메서드는 객체가 같은지 비교하는 기본 도구입니다. 사용자 정의 클래스에서 같음 메소드를 재정의하면 해당 클래스의 두 객체가 동일한지 여부를 결정하기 위한 특정 기준을 정의할 수 있습니다.
문제 이해
이름과 나이 필드가 있는 개인 클래스입니다. 두 Person 객체가 같은지 비교하려면 equals 메서드를 재정의하면 됩니다. 그러나 age 필드가 정수인 경우 문자열 비교를 위해 설계된 equals 메서드를 사용하여 비교하려고 하면 오류가 발생할 수 있습니다.
해결책
이 문제를 해결하려면 같음 연산자 ==를 사용하여 정수를 비교할 수 있습니다. 다음은 문자열과 정수 비교를 모두 처리하는 재정의된 같음 메서드의 예입니다.
@Override 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; }
이 수정된 코드에서는:
사용 예
다음은 예입니다. 재정의된 같음 메서드를 사용하는 방법:
public class Main { public static void main(String[] args) { List<Person> people = new ArrayList<>(); people.add(new Person("John Doe", 30)); people.add(new Person("Jane Doe", 25)); // Check for equality using the overridden equals method boolean equal = people.get(0).equals(people.get(1)); System.out.println(equal); // Output: false } }
이 예에서는 equals 메소드는 이름과 나이가 다른 두 Person 객체가 동일하지 않다는 것을 올바르게 결정합니다.
위 내용은 문자열 및 정수 필드가 있는 객체에 대해 Java에서 equals() 메서드를 올바르게 재정의하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!