Streams Orta

Optional.or() ile yedekleme

İç içe kontroller olmadan Optional yedeklerini zincirleyin.

✕ Java 8
Optional<Config> cfg = primary();
if (!cfg.isPresent()) {
    cfg = secondary();
}
if (!cfg.isPresent()) {
    cfg = defaults();
}
✓ Java 9+
Optional<Config> cfg = primary()
    .or(this::secondary)
    .or(this::defaults);
Bu kodda bir sorun mu gördünüz? Bize bildirin.
🔗

Zincirlenebilir

Okunabilir bir boru hattında yedekler arka arkaya eklenir.

Gecikmeli değerlendirme

Yedek tedarikçiler yalnızca gerekli olduğunda çalışır.

📖

Bildirimsel

'önce birincili dene, yoksa ikincili, yoksa varsayılanı' şeklinde okunur.

Eski Yaklaşım
İç içe yedekleme
Modern Yaklaşım
.or() zinciri
JDK'dan itibaren
9
Zorluk
Orta
Optional.or() ile yedekleme
Mevcut

JDK 9'dan itibaren geniş çapta kullanılabilir (Eylül 2017)

Optional.or(), orijinal Optional'ın bir değeri varsa onu döndürür; yoksa alternatif bir Optional elde etmek için tedarikçiyi değerlendirir. Tedarikçiler gecikmeli çalışır — yalnızca gerektiğinde çağrılır.

Paylaş 𝕏 🦋 in