Łańcuchowanie Optional
Zastąp zagnieżdżone sprawdzenia null potokiem Optional.
Porównanie kodu
✕ Java 8
String city = null;
if (user != null) {
Address addr = user.getAddress();
if (addr != null) {
city = addr.getCity();
}
}
if (city == null) city = "Unknown";
✓ Java 9+
String city = Optional.ofNullable(user)
.map(User::address)
.map(Address::city)
.orElse("Unknown");
Widzisz problem z tym kodem? Daj nam znać.
Dlaczego nowoczesne podejście wygrywa
Łańcuchowalność
Każdy krok .map() obsługuje null transparentnie.
Liniowy przepływ
Czytaj od lewej do prawej zamiast zagnieżdżonych bloków if.
Bez NPE
null jest obsługiwany na każdym kroku — brak możliwości awarii.
Stare podejście
Zagnieżdżone sprawdzenia null
Nowoczesne podejście
Potok Optional
Od JDK
9
Poziom trudności
Początkujący
Wsparcie JDK
Łańcuchowanie Optional
Dostępne
Dostępne od JDK 8+ (ulepszone w 9+)
Jak to działa
Optional.map() łączy przez wartości null, zatrzymując się na pierwszym null. orElse() dostarcza wartość domyślną. Eliminuje zagnieżdżone sprawdzenia null w stylu piramidy zagłady.
Powiązana dokumentacja
Dowód