Vergleich von Java-Enum-Mitgliedern: == oder equal()
Bei der Arbeit mit Java-Enums stellt sich häufig die Frage nach dem geeigneten Operator dafür Zum Vergleichen von Enum-Mitgliedern verwenden. Traditionell haben Entwickler die .equals()-Methode verwendet, wie in:
public useEnums(SomeEnum a) { if (a.equals(SomeEnum.SOME_ENUM_VALUE)) { ... } }
Einige Beispiele zeigen jedoch die Verwendung des ==-Operators zum Vergleich:
public useEnums2(SomeEnum a) { if (a == SomeEnum.SOME_ENUM_VALUE) { ... } }
Welche Sollte einer dieser Operatoren zum Vergleichen von Enum-Mitgliedern bevorzugt werden?
Technische Äquivalenz und Null Sicherheit
Interessanterweise sind beide Ansätze technisch korrekt. Der Quellcode für .equals() in Java-Enumerationen zeigt, dass einfach an == delegiert wird. Es gibt jedoch einen subtilen Unterschied: == bietet auch Null-Sicherheit.
Durch die Verwendung von == können Sie sich vor potenziellen Null-Referenzen in Enum-Mitgliedsvergleichen schützen. Dieser Aspekt wird besonders relevant, wenn Sie mit Code arbeiten, der von Legacy-Systemen oder Bibliotheken von Drittanbietern geerbt wurde, wo gelegentlich Nullwerte auftreten können.
Empfehlung
Angesichts des subtilen Vorteils von Null Aufgrund der Sicherheit und der Tatsache, dass sowohl == als auch .equals() im Wesentlichen den gleichen Vergleich durchführen, ist es im Allgemeinen ratsam, beim Vergleich von Java-Enumerationsmitgliedern == zu verwenden. Diese Empfehlung entspricht auch den persönlichen Vorlieben des Autors.
Das obige ist der detaillierte Inhalt vonVergleich von Java-Enum-Mitgliedern: Sollten Sie == oder equal() verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!