Ist es in Ordnung, ==
auf Enums in Java zu verwenden, oder muss ich .equals()
verwenden? In meinem Test funktioniert ==
immer, aber ich bin mir nicht sicher, ob ich dafür garantiert bin. Insbesondere gibt es keine .clone()
Methode für eine Enumeration, daher weiß ich nicht, ob es möglich ist, eine Enumeration zu erhalten, für die .equals()
einen anderen Wert als ==
zurückgeben würde.Ist es OK == in Enums in Java zu verwenden?
Zum Beispiel ist das in Ordnung:
public int round(RoundingMode roundingMode) {
if(roundingMode == RoundingMode.HALF_UP) {
//do something
} else if (roundingMode == RoundingMode.HALF_EVEN) {
//do something
}
//etc
}
Oder muss ich es auf diese Weise schreiben:
public int round(RoundingMode roundingMode) {
if(roundingMode.equals(RoundingMode.HALF_UP)) {
//do something
} else if (roundingMode.equals(RoundingMode.HALF_EVEN)) {
//do something
}
//etc
}
möglich Duplikat [Vergleich Java Enum Mitglieder: == oder equals()] (http://stackoverflow.com/questions/1750435/comparing-java-enum-members -oder-gleich) – assylias
@assylias diese Frage kam zuerst. Vielleicht Flagge für ♦ Aufmerksamkeit, da ich nicht wirklich sicher bin, ob die beiden zusammengeführt werden sollen. –
@MattBall Ich denke, die Antwort auf Ihre Frage, die die JLS zitiert, ist die beste Antwort, weshalb ich beschloss, diese zu schließen. – assylias