Maison >Java >javaDidacticiel >Devriez-vous utiliser `instanceof` ou `getClass()` dans la méthode `.equals()` de Java ?
Préférer instanceof à getClass() dans les implémentations .equals()
Lors de la génération de méthodes .equals() dans Eclipse, les développeurs se voient présenter le choix entre utiliser "getClass()" ou "instanceof" pour comparer les types d'objets. Bien qu'Eclipse utilise par défaut "getClass()", il est généralement préférable d'opter pour "instanceof" à la place.
Raisons de préférer instanceof
Meilleures pratiques pour les vérifications nulles
Concernant null vérifie, c'est en effet une bonne pratique de supprimer l'instruction "if (obj == null)" lors de l'utilisation de "instanceof". En effet, "instanceof" garantit que "obj" est une instance de la classe concernée et qu'un objet nul ne peut pas être une instance d'une classe.
Arguments à l'appui
Josh Bloch, l'auteur de "Effective Java", préconise l'utilisation de "instanceof" dans les implémentations .equals(). Il soutient que cela garantit le bon respect du principe de substitution de Liskov et évite tout comportement surprenant dans les collections qui reposent sur la méthode égale.
Un support supplémentaire pour cette approche peut être trouvé dans une réponse sur Stack Overflow et dans le troisième chapitre du livre de Bloch, "Java efficace."
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!