orElse ve orElseGet
- Java kursu
- İleri seviye
- Ders 10/82
- 5 dk
orElse ve orElseGet ile varsayılan değer öğrenirsin.
Varsayılan değer: orElse
orElse(varsayılan) değeri varsa döndürür; yoksa verilen varsayılanı verir. Bu yöntem, boş Optional'ı güvenli bir şekilde ele almanın en basit yoludur.
Örnek: opt.orElse("Misafir"). Eğer opt boşsa sonuç "Misafir" olur; doluysa içindeki değer döner. Burada önemli bir ayrıntı: orElse'e verilen ifade, opt dolu olsa bile her zaman değerlendirilir. Pahalı bir işlemse bu israf olur; böyle durumlar için orElseGet daha uygundur.
Tembel varsayılan: orElseGet
orElseGet(Supplier) de varsayılan değer döndürür; ancak varsayılanı bir Supplier ile tembellikle (lazy) üretir. Yani varsayılan yalnızca Optional boşsa hesaplanır.
Örnek: opt.orElseGet(() -> fetchFromDb()). Eğer opt doluysa fetchFromDb hiç çağrılmaz; boşsa çağrılır. Bu, orElse'e kıyasla pahalı işlemlerde performans kazandırır. Ayrıca Supplier, her çağrıda yeniden değerlendirilebilen bir işlev olduğundan yan etkileri olan kodlarda da daha güvenlidir.
Uygulama Boş Optional'a varsayılan ver
Optional.empty() ile boş bir Optional<String> oluştur. orElse("Misafir") ile varsayılan değeri al. Sonucu System.out.println ile yazdır.
Başlangıç kodu
import java.util.Optional;
// Boş bir Optional oluştur
// orElse ile "Misafir" varsayılanını ver
// Sonucu yazdırÖrnek çözüm
import java.util.Optional;
public class OrElseDefault {
public static void main(String[] args) {
Optional<String> name = Optional.empty();
String result = name.orElse("Misafir");
System.out.println(result);
}
}Beklenen çıktı
Misafir
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 orElse çağrısını tamamla
String result = opt.____("Misafir");
String result = opt.orElse("Misafir");
Açıklama: orElse değerin yokluğunda varsayılan döndürür.
2 orElse ailesini eşleştir
| Kavram | Anlamı |
|---|---|
orElse |
Değer veya varsayılan |
orElseGet |
Supplier alır |
orElseThrow |
Hata fırlatır |
orElse(default) |
Her zaman değerlendirilir |
3 Hangi yöntem varsayılan değer için Supplier alır?
- orElse
- orElseGet Doğru cevap
- ifPresent
- orElseThrow
Açıklama: orElseGet Supplier alır ve varsayılanı tembel üretir.