Wie kann ich ein Java-Objekt in ein boolesches Primitiv umwandeln?
Ich habe es wie unten versucht, aber es funktioniert nicht
boolean di = new Boolean(someObject).booleanValue();
Der Konstruktor Boolean(Object) ist undefiniert
Bitte beraten.
Wie kann ich ein Java-Objekt in ein boolesches Primitiv umwandeln?
Ich habe es wie unten versucht, aber es funktioniert nicht
boolean di = new Boolean(someObject).booleanValue();
Der Konstruktor Boolean(Object) ist undefiniert
Bitte beraten.
Wenn das Objekt ist eigentlich a Boolean
Beispiel, dann werfen Sie es einfach:
boolean di = (Boolean) someObject;
Die explizite Umwandlung führt die Konvertierung zu durch Boolean
, und dann gibt es das automatische Unboxing auf den primitiven Wert. Oder Sie können dies explizit tun:
boolean di = ((Boolean) someObject).booleanValue();
Wenn someObject
bezieht sich jedoch nicht auf einen booleschen Wert, was soll der Code tun?
Nein, es ist keine boolesche Instanz, hat aber den Wert „true“ oder „false“.
– Ravi Gupta
5. Februar 2010 um 10:50 Uhr
Ich bin neugierig, welcher Typ die Variable ist … 🙂
– helios
5. Februar 2010 um 10:53 Uhr
Angenommen, true / false sind Strings, die Sie verwenden könnten: boolean b = Boolean.parseBoolean(String.valueOf(someObject)); Beachten Sie, dass dies für jeden anderen String-Wert als “true” (Groß- und Kleinschreibung) “false” zurückgibt und daher “false” zurückgibt, wenn “someObject” null ist.
– Adamsky
5. Februar 2010 um 10:54 Uhr
@ Jon Antwort auf die Frage, die Sie in der letzten Zeile gestellt haben, können wir verwenden instanceOf
-Methode, bevor Sie sie in Boolean umwandeln. Dadurch wird die Umwandlungsausnahme nicht ausgegeben.
– vikiiii
18. April 2013 um 16:44 Uhr
@vikiiii: Mir ist instanceof bekannt, aber das ist eine Frage von wie wir können es überprüfen – das beantwortet nicht die Frage, die ich gestellt habe, was die gewünschte ist Verhalten.
– Jon Skeet
18. April 2013 um 16:44 Uhr
Unter der Annahme, dass yourObject.toString() “true” oder “false” zurückgibt, können Sie es versuchen
boolean b = Boolean.valueOf(yourObject.toString())
Haben Sie Probleme zu verstehen, warum toString() erforderlich ist. Wenn es kein String ist, dann ist es nur ein Objekt?
– Jakob P.
18. Dezember 2012 um 5:21 Uhr
weil yourObject eine Instanz des Typs Object ist und die valueOf-Methode einen String akzeptiert.
– Nett
13. Juni 2013 um 7:53 Uhr
Das sollte wohl sein Boolean.parseBoolean
Boxen und Unboxing zu vermeiden a Boolean
.
– Ben Lings
2. Juli 2013 um 9:24 Uhr
Carlos Oliveira
Verwenden Sie den Bedingungsoperator “?” so unten:
int a = 1; //in case you want to type 1 or 0 values in the constructor call
Boolean b; //class var.
b=(a>0?true:false); //set it in the constructor body
Ja. Aber das tut nicht das, was das OP verlangt hat. 1) int
ist kein Objekttyp, schon gar nicht willkürlich Objekttyp, 2) dies ist kein Cast. Das eigentliche Problem ist, dass die ursprüngliche Frage keinen Sinn ergab und das OP sich nie die Mühe gemacht hat, sie zu klären.
– Stefan C
27. November 2021 um 3:36 Uhr
nicht das eigentliche Problem
– mannuk
18. Juli um 21:27 Uhr