Optional.or() ফলব্যাক
নেস্টেড চেক ছাড়াই 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);
এই কোডে সমস্যা দেখছেন? আমাদের জানান।
কেন আধুনিক পদ্ধতি ভালো
চেইনেবল (Chainable)
একটি পঠনযোগ্য পাইপলাইনে ফলব্যাকগুলো স্ট্যাক করুন।
লেজি ইভালুয়েশন (Lazy Evaluation)
ফলব্যাক সাপ্লায়ারগুলো কেবল প্রয়োজন হলেই এক্সিকিউট (execute) হয়।
ডিক্লারেটিভ (Declarative)
এটি 'প্রাইমারি চেষ্টা করুন, অথবা সেকেন্ডারি, অথবা ডিফল্ট' এর মতো পঠনযোগ্য।
পুরনো পদ্ধতি
নেস্টেড ফলব্যাক
আধুনিক পদ্ধতি
.or() চেইন
JDK থেকে
9
কঠিনতা
মধ্যম
JDK সমর্থন
Optional.or() ফলব্যাক
উপলব্ধ
JDK 9 (সেপ্টেম্বর 2017) থেকে ব্যাপকভাবে উপলব্ধ
কীভাবে কাজ করে
Optional.or() মেথডটি যদি অরিজিনাল অপশনালে ভ্যালু থাকে তাহলে সেটি রিটার্ন করে, অন্যথায় বিকল্প অপশনাল পাওয়ার জন্য সাপ্লায়ারকে (supplier) ইভালুয়েট (evaluate) করে। সাপ্লায়ারগুলো লেজি (lazy) – অর্থাৎ কেবল প্রয়োজন হলেই কল করা হয়।
সম্পর্কিত ডকুমেন্টেশন
প্রমাণ