Maison >Java >javaDidacticiel >Comparaison des membres Java Enum : devez-vous utiliser == ou égal à () ?
Comparaison des membres d'énumérations Java : == ou égal à()
Lorsque vous travaillez avec des énumérations Java, une question courante se pose concernant l'opérateur approprié à utiliser pour comparer les membres de l'énumération. Traditionnellement, les développeurs ont utilisé la méthode .equals(), comme le montre :
public useEnums(SomeEnum a) { if (a.equals(SomeEnum.SOME_ENUM_VALUE)) { ... } }
Cependant, quelques exemples démontrent l'utilisation de l'opérateur == à des fins de comparaison :
public useEnums2(SomeEnum a) { if (a == SomeEnum.SOME_ENUM_VALUE) { ... } }
Quel de ces opérateurs devraient être préférés pour comparer les membres de l'énumération ?
Équivalence technique et sécurité nulle
Fait intéressant, les deux approches sont techniquement correctes. Le code source de .equals() dans les énumérations Java révèle qu'il délègue simplement à ==. Cependant, il existe une différence subtile : == fournit également une sécurité nulle.
En utilisant ==, vous pouvez vous protéger contre d'éventuelles références nulles dans les comparaisons de membres d'énumération. Cet aspect devient particulièrement pertinent lorsque vous travaillez avec du code hérité de systèmes existants ou de bibliothèques tierces où des valeurs nulles peuvent occasionnellement apparaître.
Recommandation
Considérant l'avantage subtil de null la sécurité et le fait que == et .equals() effectuent essentiellement la même comparaison, il est généralement conseillé d'utiliser == lors de la comparaison des membres d'énumération Java. Cette recommandation correspond également aux préférences personnelles de l'auteur.
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!