gpt4 book ai didi

java - 对 hashCode 和 equals 使用中间数组

转载 作者:行者123 更新时间:2023-11-29 09:32:20 26 4
gpt4 key购买 nike

由于在两个地方处理类的结构变化很痛苦,我经常这样做:

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());
}
}

除了基元装箱之外,这种方法还有什么不好的地方?可以改进吗?

最佳答案

这是一种重用库方法的聪明方法,这通常是个好主意;但它会进行大量的额外分配和数组操作,这在这种频繁使用的方​​法中可能效率极低。总而言之,我会说它很可爱,但它不会通过审核。

关于java - 对 hashCode 和 equals 使用中间数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19556572/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com