Java 언어의 equals 메소드는 실제로 개발자에게 넘겨져 재정의하므로 개발자 는 두 객체가 충족하는 조건이 동일한 지 정의 할 수 있습니다.
그래서 우리는 단순히 무엇이 같은지 비교할 수는 없습니다 . 클래스의 equals 메소드가 정의를 보는 것이 무엇을 의미하는지 알고 싶습니다.
Java의 기본 equals 메소드는 다음과 같이 구현됩니다.
public boolean equals(Object obj) {
return (this == obj);
}
String 클래스는이 메서드를 재정의하며 직관적으로 문자가 모두 동일한 지 비교합니다.
public boolean equals(Object anObject) {
if (this == anObject) {
return true;
}
if (anObject instanceof String) {
String anotherString = (String)anObject;
int n = count;
if (n == anotherString.count) {
char v1[] = value;
char v2[] = anotherString.value;
int i = offset;
int j = anotherString.offset;
while (n-- != 0) {
if (v1[i++] != v2[j++])
return false;
}
return true;
}
}
return false;
}
같음을 비교하는 방법은 중요하지 않지만 같음의 목적을 이해하지 못하면 쉽게 밟을 수 있습니다.