Streams متوسط

سلسل احتياطات Optional دون تحققات متداخلة.

✕ 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);
هل ترى مشكلة في هذا الكود؟ أخبرنا.
🔗

قابل للتسلسل

كدّس الاحتياطات في خط أنابيب مقروء.

تقييم كسول

مورّدو الاحتياط لا يُنفَّذون إلا عند الحاجة.

📖

تصريحي

يُقرأ كـ 'جرّب الأساسي أو الثانوي أو الافتراضي'.

الأسلوب القديم
احتياط متداخل
الأسلوب الحديث
سلسلة .or()
منذ JDK
9
الصعوبة
متوسط
احتياط Optional.or()
متاح

متاح على نطاق واسع منذ JDK 9 (سبتمبر 2017)

يُرجع Optional.or() الـ Optional الأصلي إذا كان يحتوي قيمةً وإلا يُقيّم المورّد للحصول على Optional بديل. المورّدون كسولون — لا يُستدعَون إلا عند الحاجة.

مشاركة 𝕏 🦋 in