很多人不喜欢使用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;
}
}
我从来没有见过这样的事情,但它可以代替必须instanceof
用来测试 anObject
是否是 anA
吗?或者还有其他我没有想到的问题?