সুইচ-এ প্যাটার্ন ম্যাচিং (Pattern matching in switch)
পরিষ্কার সুইচ টাইপ প্যাটার্ন ব্যবহার করে if-else instanceof চেইনগুলোকে প্রতিস্থাপন করুন।
কোড তুলনা
✕ Java 8
String format(Object obj) {
if (obj instanceof Integer i)
return "int: " + i;
else if (obj instanceof Double d)
return "double: " + d;
else if (obj instanceof String s)
return "str: " + s;
return "unknown";
}
✓ Java 21+
String format(Object obj) {
return switch (obj) {
case Integer i -> "int: " + i;
case Double d -> "double: " + d;
case String s -> "str: " + s;
default -> "unknown";
};
}
এই কোডে সমস্যা দেখছেন? আমাদের জানান।
কেন আধুনিক পদ্ধতি ভালো
স্ট্রাকচার্ড ডিসপ্যাচ (Structured Dispatch)
সুইচ ব্রাঞ্চিং স্ট্রাকচারকে সুস্পষ্ট এবং স্ক্যানেবল করে তোলে।
এক্সপ্রেশন ফর্ম (Expression Form)
সরাসরি একটি ভ্যালু রিটার্ন করে – কোনো মিউটেবল ভ্যারিয়েবলের প্রয়োজন নেই।
এক্সহস্টিভনেস (Exhaustiveness)
কম্পাইলার নিশ্চিত করে যে সব টাইপ হ্যান্ডেল করা হয়েছে।
পুরনো পদ্ধতি
if-else চেইন
আধুনিক পদ্ধতি
টাইপ প্যাটার্নস (Type Patterns)
JDK থেকে
21
কঠিনতা
মধ্যম
JDK সমর্থন
সুইচ-এ প্যাটার্ন ম্যাচিং (Pattern matching in switch)
উপলব্ধ
JDK 21 LTS (সেপ্টেম্বর 2023) থেকে ব্যাপকভাবে উপলব্ধ
কীভাবে কাজ করে
সুইচ-এ প্যাটার্ন ম্যাচিং আপনাকে সরাসরি টাইপের সাথে ম্যাচ করতে দেয়, টাইপ টেস্ট, কাস্ট এবং বাইন্ডিংকে একটি সুসংক্ষিপ্ত কেইস লেবেলে একত্রিত করে। কম্পাইলার কমপ্লিটনেস চেক করে।
সম্পর্কিত ডকুমেন্টেশন
প্রমাণ