相关疑难解决方法(0)

有没有理由在生成.equals()时更喜欢getClass()而不是instanceof?

我正在使用Eclipse生成.equals().hashCode(),并且有一个选项标记为"使用'instanceof'来比较类型".默认情况下,此选项可以取消选中并用于.getClass()比较类型.有什么理由我应该喜欢.getClass()instanceof

不使用instanceof:

if (obj == null)
  return false;
if (getClass() != obj.getClass())
  return false;
Run Code Online (Sandbox Code Playgroud)

使用instanceof:

if (obj == null)
  return false;
if (!(obj instanceof MyClass))
  return false;
Run Code Online (Sandbox Code Playgroud)

我通常检查instanceof选项,然后进入并删除" if (obj == null)"检查.(这是多余的,因为空对象总是会失败instanceof.)有什么理由不好吗?

java eclipse equals instanceof

168
推荐指数
8
解决办法
12万
查看次数

标签 统计

eclipse ×1

equals ×1

instanceof ×1

java ×1