Vergleichen Java Enum mit der Methode == oder equals() in Java

Mohammad Irfan 12 Oktober 2023
  1. Vergleichen Enum mit dem Operator == in Java
  2. Vergleichen Enum mit der equals()-Methode in Java
  3. Vergleichen Enum-Werte und handhaben Sie die null-Sicherheit
  4. Vergleichen zwei verschiedene Enum-Werte in Java
Vergleichen Java Enum mit der Methode == oder equals() 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

Verwandter Artikel - Java Enum