多年来,我尽量避免使用 instanceof
。在适用的情况下使用多态性或访问者模式。我想它只是在某些情况下简化了维护......还有其他需要注意的缺点吗?
但是我确实在 Java 库中到处看到它,所以我想它有它的位置吗?在什么情况下更可取?这是不可避免的吗?
最佳答案
它肯定在 equals
的普通实现中占有一席之地。例如
public boolean equals ( Object o )
{
if ( this == o )
{
return true;
}
if ( ! (o instanceof MyClass) )
{
return false;
}
// Compare fields
...
}
关于 instanceof 的一件好事是,它的 LHS 可以是 null
,在这种情况下,表达式的计算结果为 false
。
关于java - instanceof 被认为是不好的做法吗?如果是这样,在什么情况下 instanceof 仍然更可取?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2750714/