我知道equals()会比较对象的值,'=='运算符会检查变量是否指向同一个内存.
我不明白如何equals()比较对象的价值,例如:
class Test {
public Test(int x, float y) {
this.x = x;
this.y = y;
}
int x,
float y;
}
Test test1 = new Test(1,2.0);
Test test2 = new Test(1,2.0);
Run Code Online (Sandbox Code Playgroud)
所以,如果我使用equals(),它会比较每个对象中的每个属性吗?
那么如果我们谈论String呢?使用equals()和operator"==",我们还需要覆盖equals()吗?
duf*_*ymo 11
除非你按照约书亚布洛赫制定的规则适当超载.
默认行为使用检查引用的相等性==.
覆盖equals 和 hashCode对象是很重要的,特别是如果你打算在java.util.Collections中使用它们.
| 归档时间: |
|
| 查看次数: |
24814 次 |
| 最近记录: |