私は生成する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)
」チェックを外します。(nullオブジェクトは常に失敗するため、冗長instanceof
です。)悪い考えである理由はありますか?
x instanceof SomeClass
場合、式はfalsex
ですnull
。したがって、2番目の構文はnullチェックを必要としません。