Maison > Java > javaDidacticiel > Énumérations Java : devriez-vous utiliser == ou égal à () pour comparer les membres ?

Énumérations Java : devriez-vous utiliser == ou égal à () pour comparer les membres ?

Barbara Streisand
Libérer: 2024-11-28 11:18:11
original
344 Les gens l'ont consulté

Java Enums: Should You Use == or equals() to Compare Members?

Comparaison des membres d'énumération Java : == vs. equals()

Lorsqu'ils travaillent avec les types d'énumération de Java, les développeurs sont souvent confrontés à la question de savoir si pour utiliser l'opérateur d'égalité (==) ou la méthode equals() pour comparer les membres d'une énumération. Cette question se pose car les énumérations sont compilées en classes, ce qui entraîne une confusion sur les implémentations sous-jacentes.

Comprendre les énumérations Java

Les énumérations Java sont des classes avec des constructeurs privés et des membres statiques publics représentant les valeurs enum. Ces membres sont essentiellement des constantes et ne peuvent pas être modifiés.

Comparaison des membres d'une énumération

L'opérateur == et la méthode equals() peuvent être utilisés pour comparer les membres de l'énumération. La méthode equals() fournit un moyen standard de comparer des objets en Java, tandis que == compare les références des objets comparés.

Équivalence technique

Inspection de la source Le code de la méthode equals() révèle qu'elle s'en remet simplement à l'opérateur ==. Cela signifie que, techniquement, les deux approches sont équivalentes pour comparer les membres d'une énumération.

Approche recommandée

Cependant, il est généralement recommandé d'utiliser l'opérateur == pour comparer les énumérations. membres. Cette approche est :

  • Null-Safe : L'opérateur == renvoie false lors de la comparaison d'un membre d'énumération à null, alors qu'equals() peut lancer une NullPointerException.

Exemple

Le code suivant démontre l'utilisation de == et equals() pour comparer les membres de l'énumération :

public enum MyEnum {
    A, B, C
}

public static void main(String[] args) {
    MyEnum a = MyEnum.A;
    MyEnum b = MyEnum.B;

    System.out.println(a == b); // false
    System.out.println(a.equals(b)); // false
}
Copier après la connexion

Dans cet exemple, == et equals() renvoient false car a et b font référence à des membres de l'énumération différents.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal