Compare Java Enum usando el método == o equals() en Java
-
Compare Enum usando el operador
==
en Java -
Compare Enum usando el método
equals()
en Java -
Compare los valores de Enum y maneje la seguridad
null
- Comparar dos valores diferentes de enum en Java
Este tutorial presenta cómo comparar Java usando el operador ==
o el método equals()
en Java.
Enum es un conjunto de constantes que se utilizan para recopilar conjuntos de datos como día, mes, color, etc. En Java, para crear un enum, usamos la palabra clave enum y luego proporcionamos valores para el tipo.
Este artículo demostrará cómo comparar los valores de enum y los objetos. Vamos a entender con algunos ejemplos.
Compare Enum usando el operador ==
en Java
El operador ==
(igual) es un operador binario que requiere dos operandos. Compara los operandos y devuelve true
o false
.
Podemos usar esto para comparar valores de enumeración. Vea el ejemplo a continuación.
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;
}
}
Producción :
false
true
Compare Enum usando el método equals()
en Java
El método Java equals()
compara dos valores y devuelve un valor booleano, ya sea true
o false
. Podemos usar este método para comparar valores de enumeración.
Aquí, usamos la enumeración Color
para comparar sus valores. El primer valor devuelve false
, pero devuelve true
para el segundo. Vea el ejemplo a continuación.
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;
}
}
Producción :
false
true
Compare los valores de Enum y maneje la seguridad null
En Java, el problema más problemático es el manejo de valores null
. También se aplica a la comparación de enumeración; si usamos el método equals()
para comparar valores de enumeración y el objeto de enumeración es null
, arroja nullpointerexception
. Vea el ejemplo a continuación.
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;
}
}
Producción :
Exception in thread "main" java.lang.NullPointerException: Cannot invoke "javaexample.Color.equals(Object)" because "color" is null
Sin embargo, si trabajamos con el operador ==
(igual) y comparamos valores/objetos de enumeración, no generará la nullpointerexception
. Eso significa que este operador es null
seguro y mejor de usar que el método equals()
. Vea el ejemplo a continuación.
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;
}
}
Producción :
false
true
Comparar dos valores diferentes de enum en Java
También podemos comparar dos objetos enum utilizando el método equals()
. Dado que ambos objetos son diferentes, devuelve false
en ambos casos. Vea el ejemplo a continuación.
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;
}
}
Producción :
false
false