Java
Özet - Optional
ofNullable, map ve orElse'yi birleştirerek bir kullanıcı bulucu yazarsın.
Özet - Optional
Bu grupta Optional'ın temellerini gördün. of null olmayan değeri sarmalar; ofNullable null güvenlidir; map ve flatMap dönüşüm yapar; orElse ve orElseGet varsayılan verir; ifPresent ve isPresent koşullu eylem sağlar.
Bu yöntemleri zincirlemek güvenli kod üretir. Önce ofNullable ile girişi sarmala, sonra map ile dönüştür, son olarak orElse ile varsayılan ver. Bu desen, null denetimlerini ortadan kaldırır ve okunaklı kod bırakır.
Uygulama ofNullable + map + orElse zinciri
Bir String input = null değişkeni tanımla. Optional.ofNullable(input) ile sarmaladıktan sonra map(String::toUpperCase) ile dönüştür ve orElse("BOŞ") ile varsayılan ver. Sonucu System.out.println ile yazdır.
Örnek çözümü göster
import java.util.Optional;
public class ChainOptional {
public static void main(String[] args) {
String input = null;
String result = Optional.ofNullable(input)
.map(String::toUpperCase)
.orElse("BOŞ");
System.out.println(result);
}
}
Optional ne zaman kullanılır?
Optional öncelikle bir yöntemin dönüş türü olarak kullanılır; sonuç yokluğunu açıkça belirtmek içindir. Alanlarda, yöntem parametresinde veya koleksiyon elemanı olarak kullanılması önerilmez.
Örnek: Optional<User> findById(int id). Bu imza, çağıran tarafa kullanıcının bulunamayabileceğini söyler. null denetimi yerine opt.orElseThrow() veya opt.ifPresent(...) kullanılır. Bu, kodun niyetini daha net gösterir ve NullPointerException riskini azaltır.
Uygulama isPresent + ifPresent + orElse bir arada
Optional.of("Selin") ile bir Optional<String> oluştur. Önce isPresent ile değeri denetle; doluysa System.out.println ile "Var: " ön ekiyle değeri yazdır. Sonra ifPresent ile "Hoş geldin " ön ekiyle yazdır. En son orElse("Misafir") ile değeri alıp yazdır.
Örnek çözümü göster
import java.util.Optional;
public class FullOptional {
public static void main(String[] args) {
Optional<String> name = Optional.of("Selin");
if (name.isPresent()) {
System.out.println("Var: " + name.get());
}
name.ifPresent(n -> System.out.println("Hoş geldin " + n));
System.out.println(name.orElse("Misafir"));
}
}
Kendini test et
-
Hangi yöntem değer yoksa Supplier'ı çağırır?
- orElse
- ifPresent
- isPresent
- orElseGet
Cevabı göster
orElseGet — orElseGet Supplier alır ve yalnızca boş durumda çağırır.
-
Yöntemi davranışla eşleştir
- ofNullable
- null güvenli sarmalar
- map
- Dönüştürür
- orElse
- Varsayılan verir
- ifPresent
- Consumer çalıştırır
Sıradaki ders: Function<T,R>