Wie wird ein Objekt in einen booleschen Wert umgewandelt?

Lesezeit: 2 Minuten

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

Benutzer-Avatar
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

1252140cookie-checkWie wird ein Objekt in einen booleschen Wert umgewandelt?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy