我正在使用 Eclipse 生成.equals()and .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。)有什么理由是个坏主意吗?