Optional zincirleme
İç içe null kontrollerini Optional pipeline ile değiştirin.
Kod Karşılaştırması
✕ 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");
Bu kodda bir sorun mu gördünüz? Bize bildirin.
Modern yöntem neden daha iyi
Zincirlenebilir
Her .map() adımı null'ı şeffaf biçimde işler.
Doğrusal akış
İç içe if blokları yerine soldan sağa okunur.
NPE'ye karşı korumalı
Her adımda null işlenir — çökme mümkün değildir.
Eski Yaklaşım
İç İçe Null Kontrolleri
Modern Yaklaşım
Optional Pipeline
JDK'dan itibaren
9
Zorluk
Başlangıç
JDK Desteği
Optional zincirleme
Mevcut
JDK 8+'dan itibaren kullanılabilir (9+'da iyileştirildi)
Nasıl çalışır
Optional.map(), null değerler üzerinden kısa devre yaparak zincirleme sağlar. orElse() varsayılanı sağlar. Bu, piramit şeklindeki null kontrolünü ortadan kaldırır.
İlgili Belgeler