J'utilise Eclipse pour générer .equals()
et .hashCode()
, et il existe une option intitulée "Utiliser 'instanceof' pour comparer les types". Par défaut, cette option est décochée et utilisée .getClass()
pour comparer les types. Y at - il raison que je préférerais .getClass()
plus instanceof
?
Sans utiliser instanceof
:
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Utilisation instanceof
:
if (obj == null)
return false;
if (!(obj instanceof MyClass))
return false;
Je coche habituellement l' instanceof
option, puis j'entre et je supprime le " if (obj == null)
" chèque. (Il est redondant car les objets nuls échoueront toujours instanceof
.) Y a-t-il une raison pour laquelle c'est une mauvaise idée?
x instanceof SomeClass
est fausse six
c'estnull
. Par conséquent, la deuxième syntaxe n'a pas besoin de la vérification nulle.