Boolean.TRUE == myBoolean vs. Boolean.WAHR.equals(myBoolean)
Gibt es überhaupt eine situation, wo die Verwendung equals(Boolean)
und ==
würden unterschiedliche Ergebnisse zurückgeben, wenn der Umgang mit Boolean
Objekte?
Boolean.TRUE == myBoolean;
Boolean.TRUE.equals(myBoolean);
Denke ich nicht über primitive Typen hier, nur Boolean-Objekte.
- haben Sie versucht, mit mehreren Instanzen von
Boolean
? myBoolean1 == myBoolean2
wo beide gleich wahr?- Hier ist der Grund, warum ich die Frage gestellt habe:
Boolean a1 = true; Boolean a2 = true; System.out.println(a1 == a2);
. Die Ausgabe ist "true"
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wie etwa:
(sowohl gedruckt als falsch, denn der gleiche Grund wie jede andere Art von Objekten).
new Boolean(true) == Boolean.TRUE
würde zeigen das Problem noch besser.==
Zeichen?Wäre es gefährlich, zu verwenden
==
weilmyBoolean
möglicherweise nicht haben, stammt aus einer der Konstanten, aber sind gebaut worden, alsnew Boolean(boolValue)
, in dem Fall==
würde immer Ergebnis infalse
. Sie können nurweder mit
==
nochequals
beteiligt, was zuverlässige Ergebnisse. Wenn Sie muss gerecht fürnull
-Werte so gut, dann gibt es nichts besseres, als Ihreequals
Ansatz.myBoolean
ist ein Objekt.TRUE.equals(myBoolean)
ist der kürzeste Weg---aber nicht zu vergleichen, tri-state-Boolean, aber um festzustellen, ob one dieser Wert isttrue
.TRUE.equals(myBoolean)
? 🙂left == null? right == null : left.equals(right)
TrueClass
,FalseClass
oderNilClass
haben einen public Konstruktor.In diesem Fall erste ist falsch. Nur die zweite if-Bedingung wahr ist.
Er Druckt:
==
funktioniert nur für primitive Typenbeim vergleichen von Objekten sollten Sie immer
o.equls(Object ob)