CodeBlanks Logo Icon CodeBlanks

orElse ve orElseGet

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

Main.java
import java.util.Optional;

// Boş bir Optional oluştur
// orElse ile "Misafir" varsayılanını ver
// Sonucu yazdır

Örnek çözüm

Main.java
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

Soru
String result = opt.____("Misafir");
Cevap
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.

İleri seviye bölümündeki tüm dersler