Heim > Java > javaLernprogramm > Java-Enums: Sollten Sie == oder equal() zum Vergleichen von Mitgliedern verwenden?

Java-Enums: Sollten Sie == oder equal() zum Vergleichen von Mitgliedern verwenden?

Barbara Streisand
Freigeben: 2024-11-28 11:18:11
Original
363 Leute haben es durchsucht

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

Vergleich von Java-Enum-Mitgliedern: == vs. equal()

Bei der Arbeit mit den Enum-Typen von Java stehen Entwickler oft vor der Frage, ob um den Gleichheitsoperator (==) oder die Methode equal() zum Vergleichen von Enumerationsmitgliedern zu verwenden. Diese Frage entsteht, weil Aufzählungen in Klassen kompiliert werden, was zu Verwirrung über die zugrunde liegenden Implementierungen führt.

Java-Aufzählungen verstehen

Java-Aufzählungen sind Klassen mit privaten Konstruktoren und öffentlichen statischen Mitgliedern stellt die Enum-Werte dar. Diese Mitglieder sind im Wesentlichen Konstanten und können nicht geändert werden.

Vergleichen von Enum-Mitgliedern

Sowohl der Operator == als auch die Methode equal() können zum Vergleichen von Enum-Mitgliedern verwendet werden. Die Methode equal() bietet eine Standardmethode zum Vergleichen von Objekten in Java, während == die Referenzen der verglichenen Objekte vergleicht.

Technische Äquivalenz

Untersuchen der Quelle Der Code der Methode equal() zeigt, dass sie einfach auf den Operator == verweist. Dies bedeutet, dass technisch gesehen beide Ansätze zum Vergleichen von Enum-Mitgliedern gleichwertig sind.

Empfohlener Ansatz

Es wird jedoch allgemein empfohlen, den ==-Operator zum Vergleichen von Enum zu verwenden Mitglieder. Dieser Ansatz ist:

  • Null-Safe: Der ==-Operator gibt false zurück, wenn ein Enumerationsmitglied mit null verglichen wird, während equal() möglicherweise eine NullPointerException auslöst.

Beispiel

Der folgende Code demonstriert die Verwendung von == und equal() So vergleichen Sie Enum-Mitglieder:

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
}
Nach dem Login kopieren

In diesem Beispiel geben sowohl == als auch equal() false zurück, da a und b auf unterschiedliche Enum-Mitglieder verweisen.

Das obige ist der detaillierte Inhalt vonJava-Enums: Sollten Sie == oder equal() zum Vergleichen von Mitgliedern verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage