Java: Nicht-Null- oder Default-Wert

Ein typisch-nerviges Java-Szenario ist das ewige Nullgeprüfe. Oft will man den Wert aus einem Parameter oder aber eine Alternative nutzen, wenn der Parameter null ist. Klassisches Beispiel: Ist ein String null, gib einen leeren String aus, wenn nicht, gib den String selbst aus. Eine einfache Lösung dafür bietet beispielsweise Apache Commons in der Funktionssammlung ObjectUtils.

ObjectUtils.defaultIfNull

System.out.println((String) null);
// "null"
System.out.println(ObjectUtils.defaultIfNull(null, ""));
// ""
System.out.println(ObjectUtils.defaultIfNull("a", ""));
// "a"

In der mir noch stets unterkommenden Variante 2.4 ist recht nervig, dass die Funktion schlicht Object zurückgibt und man seine Ergebnisse stets umständlich casten musste. In 3.1 ist der Rückgabetyp endlich generisch und kann direkt weiterverwendet werden.

ObjectUtils.firstNonNull

In eine ähnliche Kerbe schlägt die Funktion firstNonNull aus dem selben Paket. Sie liefert aus einer Liste optionaler Werte den ersten, der nicht null ist.

System.out.println(ObjectUtils.firstNonNull(null, null, "a", null, "b"));
// "a"