Java – Yoda Bedingungen

Schon einmal etwas über Meister Yoda gehört? Es ist die wohl berühmteste Person aus den Star Wars Reihen mit einer doch sehr individuellen Sprache. Bei Sätzen wie “Vergessen du musst was früher du gelernt.” oder “Viel zu lernen Du noch hast.” würden meiner damaligen Deutschlehrerin die Haare zu Berge stecken. Doch was hat das jetzt alles mit der Programmierung zu tun?

Wer sich schon manchen Quellcode angeschaut hat, dem sind vielleicht schon mal Bedingungen aufgefallen wie:

if (null == value) { 
    ...
}

oder

if (12 == value) { 
    ...
}

Das zweite Beispiel liest sich wie: “Wenn 12 gleich Wert!”. Korrekt müsste es aber “Wenn Wert gleich 12″ also:

if (value == 12) { 
    ...
}

Diese Umkehrung der zu vergleichenden Werte nennt man schlicht und einfach Yoda Bedingungen.

Da diese Art von Bedingungen doch schon häufig vorkommt, habe ich mir mehr über den Sinn Gedanken gemacht. Wo kann das wirklich notwendig sein. Für mich habe ich nach einiger Recherche nur einen guten Vorteil gefunden und dieser findet sich in Null Checks wieder.
Nehmen wir dieses Beispiel:

if (myString != null && myString.equals("MyString")) { 
    ...
}

Die Intension sollte klar sein. Ich muss zuvor meine Variable myString auf null testen, bevor ich mir sicher sein kann, dass ich die equals Methode aufrufen kann. Wäre es aber nicht viel einfacher, und kürzer, mit einer Yoda Bedingung:

if ("MyString".equals(myString)) { 
    ...
}

Leider habe ich sonst keine anderen Vorteile der Benutzung dieser Bedingungen gefunden. Wer aber doch noch welche sieht, einfach einen netten Kommentar hinterlassen.


Kommentar schreiben


*