Zum Hauptinhalt springen

Optionals

Der Umgang mit null-Werten stellt in vielen Programmiersprachen eine große Herausforderung dar. Zur Vermeidung von Laufzeitfehlern (NullPointerException) müsste vor jedem Methodenaufruf eigentlich überprüft werden, ob ein gültiger Wert vorliegt oder nicht.

MainClass.java
public class MainClass {

public static void main(String[] args) {
String text = foo();
System.out.println(text.length()); // Laufzeitfehler
}

public static String foo() {
return null;
}

}

Die Klasse Optional ermöglicht in Java eine komfortable Möglichkeit, mit null-Werten umzugehen. Das eigentliche Objekt wird dabei in einem Objekt der Klasse Optional verpackt; der Zugriff auf das verpackte Objekt erfolgt über entsprechende Methoden. Dies stellt sicher, dass sich der Entwickler mit null-Werten auseinander setzen muss.

Für den Umgang mit null-Werten stellt die Klasse Optional Methoden wie T get(), boolean isPresent() und void ifPresent(consumer: Consumer<T>) zur Verfügung. Zudem existieren Methoden wie void orElse(other: T), mit denen Standardwerte festgelegt werden können.

MainClass.java
public class MainClass {

public static void main(String[] args) {
Optional<String> optionalText = foo();
optionalText.ifPresent(t -> System.out.println(t.length()));
}

public static Optional<String> foo() {
return Optional.ofNullable(null);
}

}