Streams প্রাথমিক

Optional-এর present এবং empty উভয় কেইসকে একটি সিঙ্গেল কল-এই হ্যান্ডেল করুন।

✕ Java 8
Optional<User> user = findUser(id);
if (user.isPresent()) {
    greet(user.get());
} else {
    handleMissing();
}
✓ Java 9+
findUser(id).ifPresentOrElse(
    this::greet,
    this::handleMissing
);
এই কোডে সমস্যা দেখছেন? আমাদের জানান।
📏

সিঙ্গেল এক্সপ্রেশন

উভয় কেইস একটি মেথড কল-এই হ্যান্ডেল করা যায়।

🚫

get() এর প্রয়োজন নেই

বিপজ্জনক isPresent() + get() প্যাটার্ন বাদ দেয়।

🔗

ফ্লুয়েন্ট

findUser() বা যেকোনো Optional-রিটার্নিং মেথডের পরে স্বাভাবিকভাবে চেইন হয়।

পুরনো পদ্ধতি
if/else on Optional
আধুনিক পদ্ধতি
ifPresentOrElse()
JDK থেকে
9
কঠিনতা
প্রাথমিক
Optional.ifPresentOrElse()
উপলব্ধ

JDK 9 (সেপ্টেম্বর 2017) থেকে ব্যাপকভাবে উপলব্ধ

ifPresentOrElse() মেথডটি present কেইসের জন্য একটি Consumer এবং empty কেইসের জন্য একটি Runnable নেয়। এটি isPresent()/get() অ্যান্টি-প্যাটার্ন এড়িয়ে যায়।