Wie kann man den Erfolg einer Zuweisung als Boolean Wert verwenden?

Geek

Mitglied
Java:
if ( (testobject = liefereTestObjectzurueck())  ){
....
}

Die Methode liefereTestObjecttzurueck() liefert mir ein Objekt vom Typ Test zurück.
Die Variable testobject ist ebenfalls vom Typ Test und diese soll das Object erhalten.

Gleichzeitig will ich aber auch überprüfen, ob diese Zuweisung erfolgreich war. In liefereTestObjectzurueck passiert nämlich einiges.

Das Problem ist jetzt nur, dass Java diese Zuweisung, wenn sie erfolgreich war, nicht als Boolean Wert zu erkennen scheint.
Wenn die Zuweisung erfolgreich war, dann sollte das einem true entsprechen, ansonsten eben einem false und darauf wollte ich das if prüfen, aber irgendwie funktioniert das nicht bzw. mag das der Compiler so nicht.

Gibt es eine Alternative wie ich das machen könnte ohne dass ich jetzt den Rückgabetyp von liefereTestObjectzurueck() ändern muss?
 
Nun, ich möchte im if Block noch etwas ausgeben, die Ausgabe gehört zum Programm dazu und soll auch nur bei Erfolg ausgegeben werden.
Wenn ich die Zuweisung nur in einen try catch Block reinpacke, dann habe ich zwar eine Prüfung die Zuweisung geklappt hat, aber ja noch keine positive Ausgabe.
Und außerhalb des try catch Blocks kann ich die Ausgabe auch nicht setzten, da das Programm so oder so weiterlaufen soll, egal ob die Zuweisung nun geklappt hat oder nicht.
 
Java:
boolean success;
try{
    testObject = liefereTestObjectzurueck();
    success = true;

}catch (Exception e){
    e.printStackTrace();
    success = false;
}
if(success){
    //code
}
 
Ich nehme einmal an, dass du mit "Zuweisung war erfolgreich" meinst, dass die Funktion ein Objekt ungleich null zurückliefert.
Dann kannst du deinen Code folgendermaßen umschreiben:
Java:
if ( (testobject = liefereTestObjectzurueck() ) != null ){
....
}

Lesbarer ist aber die Variante von @BuckRogers
 
Das:
Java:
TestObject obj1 = null;

obj1 = liefereTestObjectZurueck();

if (obj1 != null){
....
}

Nennt sich lazy initialization.


und das:

Ich nehme einmal an, dass du mit "Zuweisung war erfolgreich" meinst, dass die Funktion ein Objekt ungleich null zurückliefert.
Dann kannst du deinen Code folgendermaßen umschreiben:
Java:
if ( (testobject = liefereTestObjectzurueck() ) != null ){
....
}

Lesbarer ist aber die Variante von @BuckRogers

gefällt mir, so etwas habe ich gesucht.
Danke.
 

Neue Themen


Zurück
Oben