有没有理由在生成.equals()时更喜欢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
。)有什么理由不好吗?
largeQ
慕婉清6462132
相关分类