অ্যানোনিমাস ক্লাস সহ ডায়মন্ড অপারেটর (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
কঠিনতা
প্রাথমিক
JDK সমর্থন
অ্যানোনিমাস ক্লাস সহ ডায়মন্ড অপারেটর (Diamond with Anonymous Classes)
উপলব্ধ
JDK 9 (সেপ্টেম্বর 2017) থেকে অ্যানোনিমাস ক্লাস সহ ডায়মন্ড অপারেটর।
কীভাবে কাজ করে
Java 7-এ Diamond অপারেটর চালু করা হলেও এটি অ্যানোনিমাস ইনার ক্লাসগুলোর (anonymous inner classes) সাথে কাজ করত না। Java 9 এটি ঠিক করেছে, তাই আপনাকে আর রাইট-হ্যান্ড সাইডে টাইপ আর্গুমেন্টস (type arguments) রিপিট করার প্রয়োজন নেই।
সম্পর্কিত ডকুমেন্টেশন
প্রমাণ