Schlagwörter

, ,

In der Programmiersprache Java gibt es ein paar Kurzschreibweisen. Die meisten hiervon sind für das ungeübte Auge eher verwirrend als hilfreich und zeugen mehr davon, dass jemand mit seinen technischen Fertigkeiten angeben möchte, als dass er sich um das Programmierprinzip des gut lesbaren Codes bemüht. Hier möchte ich auf einen Fall eingehen, wann die Kurzschschreibweise unumgänglich zu sein scheint.

Für die Konstruktion if-else gibt es die folgende Kurzschreibweise:

if (bedingung)
	befehl1;
else
	befeh2;

ist gleichwertig zu:

(bedingung) ? befehl1 : befeh2;

Beispiel (ähnlich wie auf ZUM-Wiki:

int x = 0;
if (0 < 1)
	x = 2;
else
	x = 42;
// oder kurz:
x = (0<1) ? 2 : 42;

Wann muss man diese Kurzschreibweise aber zwingend nehmen? Genau dann, wenn man nicht erst einen anderen Befehl anführen darf (und auch keine Kontrollstruktur). Das ist aber gerade dann der Fall, wenn man in einem Konstruktor einen anderen Konstruktor aufrufen möchte (also mit this oder super).
Beispiel:

class A {
	private String name;
	public A(String name){
		this.name = name;
	}
}


class B extends A {
	public A(boolean variante){
		super(variante ? "Variante true" : "Variante false");
		// erzeugt als Name "Variante true" bei Parameter true
		// und "Variante false" bei Parameter false
	}
}
Advertisements