যখন গার্ড ব্যবহার করে প্যাটার্ন (Guarded Patterns with when)
when গার্ড ব্যবহার করে প্যাটার্ন কেইসগুলোতে কন্ডিশন যোগ করুন।
কোড তুলনা
✕ Java 8
if (shape instanceof Circle) {
Circle c = (Circle) shape;
if (c.radius() > 10) {
return "large circle";
} else {
return "small circle";
}
} else {
return "not a circle";
}
✓ Java 21+
return switch (shape) {
case Circle c
when c.radius() > 10
-> "large circle";
case Circle c
-> "small circle";
default -> "not a circle";
};
এই কোডে সমস্যা দেখছেন? আমাদের জানান।
কেন আধুনিক পদ্ধতি ভালো
সুনির্দিষ্ট ম্যাচিং (Precise Matching)
একটি সিঙ্গেল কেইস লেবেলে টাইপ এবং কন্ডিশন একত্রিত করুন।
ফ্ল্যাট স্ট্রাকচার (Flat Structure)
সুইচ কেইসের ভিতরে কোনো নেস্টেড if/else থাকে না।
পঠনযোগ্য উদ্দেশ্য (Readable Intent)
when ক্লজটি স্বাভাবিক ভাষার মতো পঠনযোগ্য।
পুরনো পদ্ধতি
নেস্টেড if
আধুনিক পদ্ধতি
when ক্লজ (when Clause)
JDK থেকে
21
কঠিনতা
মধ্যম
JDK সমর্থন
যখন গার্ড ব্যবহার করে প্যাটার্ন (Guarded Patterns with when)
উপলব্ধ
JDK 21 LTS (সেপ্টেম্বর 2023) থেকে ব্যাপকভাবে উপলব্ধ
কীভাবে কাজ করে
গার্ডেড প্যাটার্ন (Guarded Patterns) আপনাকে একটি অতিরিক্ত বুলিয়ান কন্ডিশন (boolean condition) সহ একটি টাইপ ম্যাচকে রিফাইন করতে সাহায্য করে। এটি ব্রাঞ্চিং লজিককে কেইসের ভিতরে if স্টেটমেন্ট নেস্ট না করে সুইচের (switch) মধ্যেই রাখে।
সম্পর্কিত ডকুমেন্টেশন
প্রমাণ