有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在生成时没有任何理由更喜欢getClass()而不是instanceof。等于()?

我正在使用Eclipse生成.equals().hashCode(),并且有一个标记为“使用'instanceof'比较类型”的选项。默认情况下,此选项将被取消选中,并使用.getClass()来比较类型。有什么理由我更喜欢.getClass()而不是instanceof

不使用instanceof

if (obj == null)
  return false;
if (getClass() != obj.getClass())
  return false;

使用instanceof

if (obj == null)
  return false;
if (!(obj instanceof MyClass))
  return false;

我通常选中instanceof选项,然后进入并删除“if (obj == null)”复选框。(这是多余的,因为空对象总是会失败instanceof。)有什么理由认为这是个坏主意吗


共 (0) 个答案