Vergleichen Java Enum mit der Methode == oder equals() in Java
-
Vergleichen Enum mit dem Operator
==
in Java -
Vergleichen Enum mit der
equals()
-Methode in Java -
Vergleichen Enum-Werte und handhaben Sie die
null
-Sicherheit - Vergleichen zwei verschiedene Enum-Werte in Java
Dieses Tutorial stellt vor, wie man Java-Enumerationen mit dem Operator ==
oder der Methode equals()
in Java vergleicht.
Enum ist eine Reihe von Konstanten, die zum Sammeln von Datensätzen wie Tag, Monat, Farbe usw. verwendet werden. In Java verwenden wir zum Erstellen einer Aufzählung das Schlüsselwort enum und geben dann Werte für den Typ an.
In diesem Artikel wird gezeigt, wie Sie die Enum-Werte und -Objekte vergleichen. Lassen Sie uns anhand einiger Beispiele verstehen.
Vergleichen Enum mit dem Operator ==
in Java
Der Operator ==
(gleich) ist ein binärer Operator, der zwei Operanden erfordert. Er vergleicht die Operanden und gibt entweder true
oder false
zurück.
Wir können dies verwenden, um Enum-Werte zu vergleichen. Siehe das Beispiel unten.
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;
}
}
Ausgabe:
false
true
Vergleichen Enum mit der equals()
-Methode in Java
Die Java-Methode equals()
vergleicht zwei Werte und gibt einen booleschen Wert zurück, entweder true
oder false
. Wir können diese Methode verwenden, um Enum-Werte zu vergleichen.
Hier haben wir die Aufzählung Color
verwendet, um ihre Werte zu vergleichen. Der erste Wert gibt false
zurück, der zweite jedoch true
. Siehe das Beispiel unten.
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;
}
}
Ausgabe:
false
true
Vergleichen Enum-Werte und handhaben Sie die null
-Sicherheit
In Java ist das problematischste Problem der Umgang mit null
-Werten. Es gilt auch für den Enum-Vergleich; Wenn wir die Methode equals()
verwenden, um Enum-Werte zu vergleichen, und das Enum-Objekt null
ist, löst es nullpointerexception
aus. Siehe das Beispiel unten.
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;
}
}
Ausgabe:
Exception in thread "main" java.lang.NullPointerException: Cannot invoke "javaexample.Color.equals(Object)" because "color" is null
Wenn wir jedoch mit dem Operator ==
(gleich) arbeiten und Enum-Werte/Objekte vergleichen, wird die nullpointerexception
nicht ausgelöst. Das bedeutet, dass dieser Operator null
-sicher und besser zu verwenden ist als die equals()
-Methode. Siehe das Beispiel unten.
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;
}
}
Ausgabe:
false
true
Vergleichen zwei verschiedene Enum-Werte in Java
Wir können auch zwei Enum-Objekte mit der Methode equals()
vergleichen. Da beide Objekte unterschiedlich sind, wird in beiden Fällen false
zurückgegeben. Siehe das Beispiel unten.
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;
}
}
Ausgabe:
false
false