Verständnis frage zum ? XXX : im code

wakoz

Erfahrenes Mitglied
Moin,

ich habe diese und auch ähnliche Methoden gefunden

Java:
 public void setValue(Object value) {
        if (formatter==null) {
            formatter = DateFormat.getDateInstance();
        }
        setText((value == null) ? "" : formatter.format(value)); //<---- Diese Schreibweise 
    }

Ich würde gerne mehr über die Schreibweise und Funktion erfahren, ich habe bereits verstanden was da passiert. Im Grunde ist es nichts anderes als eine Kurzschreibweise der if Klausel.
 
Zuletzt bearbeitet von einem Moderator:
Hallo!

Dieses Konstrukt ist ein sogenannter ternärer Operator und ist, wie du schon erkannt hast, eine Fallunterscheidung.
Aber im Gegensatz zur If-Klausel ist er schon etwas eingeschränkter und zwar kannst du bei den beiden Fällen je nur eine Anweisung reinschreiben, die ein Objekt einer bestimmten erwarteten Klasse als Ergebnis haben muss, wogegen du natürlich bei einem IF-Konstrukt soviel machen kannst wie du willst.

Gruß
Matt
 
Ich persönlich würde auf den ternären Operator verzichten, da er
- schwer verständlich ist (für einige Menschen)
- beim Compilieren in den selben Bytecode übergeführt wird wie die if-Clause, es gibt also im fertigen Programm keinen Unterschied
 
Ich persönlich würde auf den ternären Operator verzichten, da er
- schwer verständlich ist (für einige Menschen)
- beim Compilieren in den selben Bytecode übergeführt wird wie die if-Clause, es gibt also im fertigen Programm keinen Unterschied
naja, ich habe mir beispiel klassen bzw, code von Sun reingezogen um mir etwas verständlicher zu machen und da tauchte diese Operation auf. Obwohl ich verstanden habe was da passiert musste ich mir sicher sein bzw. wollte ich wissen wie das Heißt
 
Zurück