2 Objects are equal, when their type is equal and both's attribute is equal
이라고 말하면 거의 10 줄의 코드를 작성해야 할 때 두통이 생깁니다. 이 방법으로 많은 수의 속성이 많은 속성으로 크게 늘어남을 쉽게 알 수 있습니다.자바 : howto는 equals()를 짧게 작성합니다
public class Id implements Node {
private String name;
public Id(String name) {
this.name = name;
}
public boolean equals(Object o) {
if (o == null)
return false;
if (null == (Id) o)
return false;
Id i = (Id) o;
if ((this.name != null && i.name == null) || (this.name == null && i.name != null))
return false;
return (this.name == null && i.name == null) || this.name.equals(i.name);
}
}
올바른 구현을위한 내 대답을 참조하십시오. 잘못된 유형으로 무언가를 전송하면 null이 아닌 런타임 예외 (ClassCastException)가 발생합니다. 환상적인 *** 설명을위한 효과적인 자바를 읽으십시오. – Tom
Btw - 나는 실제적인 챕터에 대한 효과적인 자바에서 내 대답에 링크 :-). – Tom