【发布时间】:2012-11-09 22:24:02
【问题描述】:
很多人不喜欢使用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 来测试Object 是否是A?还是有其他我没有想到的问题?
【问题讨论】:
-
我很好奇,为什么不用
instanceof?即使是使用EqualsBuilder 之类的示例也有instanceof。 -
没有找到不使用它的理由。我总是在游戏中使用它。
-
@Peter 是正确的,重载的方法不是动态绑定的,因此在典型用法中很少会调用此方法。 stackoverflow.com/questions/321864/…
-
我没有反对
instanceof,我只是好奇这个问题。
标签: java equals instanceof