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' instanceofoption, 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 SomeClassest fausse sixc'estnull. Par conséquent, la deuxième syntaxe n'a pas besoin de la vérification nulle.