Comparez Java Enum en utilisant la méthode == ou equals() en Java
-
Compare Enum à l’aide de l’opérateur
==
en Java -
Compare Enum en utilisant la méthode
equals()
en Java -
Comparer les valeurs d’énumération et gérer la sécurité
null
- Comparer deux valeurs d’énumération différentes en Java
Ce didacticiel explique comment comparer Java enum à l’aide de l’opérateur ==
ou de la méthode equals()
en Java.
Enum est un ensemble de constantes utilisées pour collecter des ensembles de données tels que le jour, le mois, la couleur, etc. En Java, pour créer une énumération, nous utilisons le mot-clé enum, puis fournissons des valeurs pour le type.
Cet article vous montrera comment comparer les valeurs d’énumération et les objets. Comprenons avec quelques exemples.
Compare Enum à l’aide de l’opérateur ==
en Java
L’opérateur ==
(égal) est un opérateur binaire qui nécessite deux opérandes. Il compare les opérandes et renvoie soit true
soit false
.
Nous pouvons l’utiliser pour comparer les valeurs d’énumération. Voir l’exemple ci-dessous.
enum Color {
red,
green,
yello,
white,
black,
purple,
blue;
}
public class SimpleTesting {
public static void main(String[] args) {
boolean result = isGreen(Color.blue);
System.out.println(result);
result = isGreen(Color.green);
System.out.println(result);
}
public static boolean isGreen(Color color) {
if (color == Color.green) {
return true;
}
return false;
}
}
Production :
false
true
Compare Enum en utilisant la méthode equals()
en Java
La méthode Java equals()
compare deux valeurs et renvoie une valeur booléenne, soit true
soit false
. Nous pouvons utiliser cette méthode pour comparer les valeurs enum.
Ici, nous avons utilisé l’énumération Color
pour comparer ses valeurs. La première valeur renvoie false
, mais elle renvoie true
pour la seconde. Voir l’exemple ci-dessous.
enum Color {
red,
green,
yello,
white,
black,
purple,
blue;
}
public class SimpleTesting {
public static void main(String[] args) {
boolean result = isGreen(Color.blue);
System.out.println(result);
result = isGreen(Color.green);
System.out.println(result);
}
public static boolean isGreen(Color color) {
if (color.equals(Color.green)) {
return true;
}
return false;
}
}
Production :
false
true
Comparer les valeurs d’énumération et gérer la sécurité null
En Java, le problème le plus problématique est la gestion des valeurs null
. Cela s’applique également à la comparaison enum ; si nous utilisons la méthode equals()
pour comparer les valeurs enum et que l’objet enum est null
, il lève nullpointerexception
. Voir l’exemple ci-dessous.
enum Color {
red,
green,
yello,
white,
black,
purple,
blue;
}
public class SimpleTesting {
public static void main(String[] args) {
Color color = null;
boolean result = isGreen(color);
System.out.println(result);
result = isGreen(Color.green);
System.out.println(result);
}
public static boolean isGreen(Color color) {
if (color.equals(Color.green)) {
return true;
}
return false;
}
}
Production :
Exception in thread "main" java.lang.NullPointerException: Cannot invoke "javaexample.Color.equals(Object)" because "color" is null
Cependant, si nous travaillons avec l’opérateur ==
(égal) et comparons les valeurs/objets enum, cela ne lèvera pas l’exception nullpointerexception
. Cela signifie que cet opérateur est null
sûr et meilleur à utiliser que la méthode equals()
. Voir l’exemple ci-dessous.
enum Color {
red,
green,
yello,
white,
black,
purple,
blue;
}
public class SimpleTesting {
public static void main(String[] args) {
Color color = null;
boolean result = isGreen(color);
System.out.println(result);
result = isGreen(Color.green);
System.out.println(result);
}
public static boolean isGreen(Color color) {
if (color == Color.green) {
return true;
}
return false;
}
}
Production :
false
true
Comparer deux valeurs d’énumération différentes en Java
Nous pouvons également comparer deux objets enum en utilisant la méthode equals()
. Comme les deux objets sont différents, il renvoie false
dans les deux cas. Voir l’exemple ci-dessous.
enum Color {
red,
green,
yello,
white,
black,
purple,
blue;
}
enum MyColors {
green,
red,
blue;
}
public class SimpleTesting {
public static void main(String[] args) {
boolean result = isGreen(Color.red);
System.out.println(result);
result = isGreen(Color.green);
System.out.println(result);
}
public static boolean isGreen(Color color) {
if (color.equals(MyColors.red)) {
return true;
}
return false;
}
}
Production :
false
false