Language متوسط

أضف شروطاً لحالات الأنماط باستخدام حراس when.

✕ Java 8
if (shape instanceof Circle c) {
    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";
};
هل ترى مشكلة في هذا الكود؟ أخبرنا.
🎯

مطابقة دقيقة

ادمج النوع + الشرط في تسمية حالة واحدة.

📐

بنية مسطّحة

لا if/else متداخلة داخل حالات switch.

📖

نية مقروءة

جملة when تُقرأ كاللغة الطبيعية.

الأسلوب القديم
if متداخل
الأسلوب الحديث
جملة when
منذ JDK
21
الصعوبة
متوسط
الأنماط المحروسة بـ when
متاح

متاح على نطاق واسع منذ JDK 21 LTS (سبتمبر 2023)

تتيح الأنماط المحروسة لك تنقية مطابقة النوع بشرط منطقي إضافي. يُبقي هذا جميع منطق التفريع في switch بدلاً من تداخل جمل if داخل الحالات.

مشاركة 𝕏 🦋 in