由于在两个地方处理班级的结构变化很痛苦,我经常这样做:
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());
}
}
除了对基元进行装箱外,这种方法还有什么不好的?可以改进吗?