我正在使用Eclipse生成.equals()和.hashCode(),并且有一个选项标记为"使用'instanceof'来比较类型".默认情况下,此选项可以取消选中并用于.getClass()比较类型.有什么理由我应该喜欢.getClass()过instanceof?
不使用instanceof:
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Run Code Online (Sandbox Code Playgroud)
使用instanceof:
if (obj == null)
return false;
if (!(obj instanceof MyClass))
return false;
Run Code Online (Sandbox Code Playgroud)
我通常检查instanceof选项,然后进入并删除" if (obj == null)"检查.(这是多余的,因为空对象总是会失败instanceof.)有什么理由不好吗?