ars*_*jii 2 java equals instanceof
许多人不喜欢使用instanceof,但我发现在很多情况下,我们在equals方法方面几乎没有其他选择.看看下面的课程:
class A {
int n;
public A(int n) { this.n = n; }
@Override
public boolean equals(Object o) {
return false;
}
public boolean equals(A o) {
return n == o.n;
}
}
Run Code Online (Sandbox Code Playgroud)
我从来没有见过像这样的东西,但它可以作为一个替代品,instanceof用来测试一个Object是不是A?或者还有其他我没想过的问题?
它可以作为必须使用instanceof来测试Object是否为A的替代品?
不.这是因为调用的方法是静态选择的,即equals(object o)在大多数情况下只会被调用.
你可以写
@Override
public boolean equals(Object o) {
return o instanceof A && n == ((A) o).n;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
417 次 |
| 最近记录: |