নেগেশনের (negation) জন্য Predicate.not()
ল্যাম্বডা র্যাপার না লিখে পরিষ্কারভাবে মেথড রেফারেন্স (method references) নেগেট করতে Predicate.not() ব্যবহার করুন।
কোড তুলনা
✕ Java 8
List<String> nonEmpty = list.stream()
.filter(s -> !s.isBlank())
.collect(Collectors.toList());
✓ Java 11+
List<String> nonEmpty = list.stream()
.filter(Predicate.not(String::isBlank))
.toList();
এই কোডে সমস্যা দেখছেন? আমাদের জানান।
কেন আধুনিক পদ্ধতি ভালো
ক্লিনার নেগেশন
শুধুমাত্র নেগেট করার জন্য মেথড রেফারেন্সগুলোকে ল্যাম্বডার মধ্যে র্যাপ করার প্রয়োজন নেই।
কম্পোজেবল (Composable)
যেকোনো প্রেডিকেট (Predicate) এর সাথে কাজ করে, যা পরিষ্কার প্রেডিকেট চেইন তৈরি করতে সক্ষম।
স্বাভাবিকভাবে পঠনযোগ্য
Predicate.not(String::isBlank) ইংরেজিতে পড়ার মতোই সহজ।
পুরনো পদ্ধতি
ল্যাম্বডা নেগেশন
আধুনিক পদ্ধতি
Predicate.not()
JDK থেকে
11
কঠিনতা
প্রাথমিক
JDK সমর্থন
নেগেশনের (negation) জন্য Predicate.not()
উপলব্ধ
JDK 11 (সেপ্টেম্বর 2018) থেকে উপলব্ধ।
কীভাবে কাজ করে
Java 11 এর আগে, একটি মেথড রেফারেন্স নেগেট করার জন্য এটিকে একটি ল্যাম্বডার (lambda) মধ্যে র্যাপ করার প্রয়োজন হতো। Predicate.not() মেথডটি আপনাকে সরাসরি যেকোনো প্রেডিকেট (predicate) নেগেট করতে দেয়, যা স্ট্রিম পাইপলাইন জুড়ে কোডকে পঠনযোগ্য এবং মেথড রেফারেন্স স্টাইলের সাথে সামঞ্জস্যপূর্ণ রাখে।
সম্পর্কিত ডকুমেন্টেশন
প্রমাণ