我正在使用 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
。)有什么理由是个坏主意吗?