Boolean.TRUE == myBoolean vs Booléenne.VRAI.equals(myBoolean)
Est-il jamais une situation où l'aide equals(Boolean)
et ==
serait de retour des résultats différents lorsqu'ils traitent avec des Boolean
objets?
Boolean.TRUE == myBoolean;
Boolean.TRUE.equals(myBoolean);
Je ne suis pas la réflexion sur les types primitifs ici, juste de l'objet Boolean.
avez-vous essayé avec plusieurs instances de
Voici pourquoi j'ai posé la question:
Boolean
?myBoolean1 == myBoolean2
où à la fois l'égalité vrai?Voici pourquoi j'ai posé la question:
Boolean a1 = true; Boolean a2 = true; System.out.println(a1 == a2);
. La sortie est à "true"
OriginalL'auteur Edd | 2013-05-08
Vous devez vous connecter pour publier un commentaire.
Comment sur:
(à la fois l'impression de faux, pour la même raison que tout autre type d'objets).
new Boolean(true) == Boolean.TRUE
serait la vitrine de la question encore mieux.de son faux parce que nous sommes des objets de comparaison avec
==
signe?La raison pour laquelle il imprime des faux est de même pour tout autre objet: stackoverflow.com/questions/2772763/...
Merci pour cette... je ne savais pas si il existe toujours seulement 2 Boolean objets et toutes les références à des objets mais je ne crois pas
OriginalL'auteur assylias
Il serait dangereux d'utiliser
==
parce quemyBoolean
peuvent ne pas provenir de l'une des constantes, mais ont été construits commenew Boolean(boolValue)
, auquel cas==
serait toujoursfalse
. Vous pouvez simplement utiliserni
==
niequals
impliqués, donnant des résultats fiables. Si vous devez répondre ànull
valeurs de eh bien, alors il n'y a rien de mieux que de votreequals
approche.Vous faire croire que c'est un problème. Pourquoi serait-ce un problème? Notez que le résultat soit de l'OP expressions est la même chose primitive de type boolean.
Pour moi, ce serait une solution possible au lieu d'un problème. Si l'OP a déclaré que sa question n'est pas de discuter le traitement des primitives.
des valeurs primitives à un problème de tri-state booléens (vrai/faux/null)
L'OP est seulement indiquant que
myBoolean
est un objet.OriginalL'auteur Marko Topolnik
==
fonctionne uniquement pour les types primitifslorsque vous comparez des Objets, vous devez toujours utiliser
o.equls(Object ob)
OriginalL'auteur Kuchi
Dans ce cas, la première est fausse. Seulement la deuxième si la condition est vraie.
Imprime :
OriginalL'auteur Vineet Singla