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:
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 }
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!