java - instanceof 被认为是不好的做法吗?如果是这样,在什么情况下 instanceof 仍然更可取?

标签 java instanceof

多年来,我尽量避免使用 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/

相关文章:

java - 不是 Vectors java 类的实例

java - 我需要将instanceof与来自不同类的arraylist一起使用

java - Android XML内部存储

java - 获取 TreeMap 的最后 3 个值

Java - 最后创建的对象覆盖前一个对象

javascript - 如何以字符串格式获取javascript对象类型?

更改计算机时钟后的 Java 系统时间

java - 使用 getter setter 初始化 List

java - 我的复选框似乎不是 instanceof CheckBox

C++ 子类的类型是否与它们自己及其父类相同?