私がよく行う2つの場所でクラスの構造的な変更を処理するのは面倒なので:
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());
}
}
プリミティブのボクシング以外に、このアプローチの何が悪いのでしょうか? 改善できますか?