Language প্রাথমিক

অ্যানোনিমাস ক্লাস সহ ডায়মন্ড অপারেটর (Diamond with Anonymous Classes)

ডায়মন্ড অপারেটর এখন অ্যানোনিমাস ক্লাসগুলোর (anonymous classes) সাথেও কাজ করে।

✕ Java 7/8
Map<String, List<String>> map =
    new HashMap<String, List<String>>();
// anonymous class: no diamond
Predicate<String> p =
    new Predicate<String>() {
        public boolean test(String s) {..}
    };
✓ Java 9+
Map<String, List<String>> map =
    new HashMap<>();
// Java 9: diamond with anonymous classes
Predicate<String> p =
    new Predicate<>() {
        public boolean test(String s) {..}
    };
এই কোডে সমস্যা দেখছেন? আমাদের জানান।
📏

সামঞ্জস্যপূর্ণ নিয়ম (Consistent Rules)

Diamond অপারেটর সব জায়গায় কাজ করে – কনস্ট্রাক্টর এবং অ্যানোনিমাস ক্লাসগুলোতে একইভাবে।

🧹

কম রিডানডেন্সি (Less Redundancy)

টাইপ আর্গুমেন্টস বাম দিকে একবার ডিক্লেয়ার করা হয়, আর পুনরাবৃত্তি করার প্রয়োজন নেই।

🔧

DRY প্রিন্সিপাল (DRY Principle)

কম্পাইলার ইতিমধ্যেই টাইপ জানে – তাহলে এটি দুইবার লেখার প্রয়োজন কী?

পুরনো পদ্ধতি
টাইপ Args পুনরাবৃত্তি
আধুনিক পদ্ধতি
Diamond <>
JDK থেকে
9
কঠিনতা
প্রাথমিক
অ্যানোনিমাস ক্লাস সহ ডায়মন্ড অপারেটর (Diamond with Anonymous Classes)
উপলব্ধ

JDK 9 (সেপ্টেম্বর 2017) থেকে অ্যানোনিমাস ক্লাস সহ ডায়মন্ড অপারেটর।

Java 7-এ Diamond অপারেটর চালু করা হলেও এটি অ্যানোনিমাস ইনার ক্লাসগুলোর (anonymous inner classes) সাথে কাজ করত না। Java 9 এটি ঠিক করেছে, তাই আপনাকে আর রাইট-হ্যান্ড সাইডে টাইপ আর্গুমেন্টস (type arguments) রিপিট করার প্রয়োজন নেই।