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) 个答案