作爲其一個痛苦的處理在兩個地方之類的結構變化我經常這樣做:使用中間陣列的hashCode和equals
class A {
class C{}
class B{}
private B bChild;
private C cChild;
private Object[] structure() {
return new Object[]{bChild, cChild};
}
public int hashCode() {
Arrays.hashCode(structure());
}
public boolean equals(Object that) {
//type check here
return Arrays.equals(this.structure(), ((A)that).structure());
}
}
有什麼不好,除了原語的拳擊這種做法? 可以改進嗎?
除了事實,即它不能編譯,你是什麼意思?到目前爲止,它沒有任何建議。 – EJP
這種方法試圖解決什麼問題? – Vitaliy
@Vitaliy,將對象結構封裝在兩個地方而不是三個(fields,equals,hashCode)。 – Basilevs