Language متقدم

مطابقة الأنماط تعمل الآن مع الأنواع الأولية لا مع الكائنات فحسب.

✕ Java 8
String classify(int code) {
    if (code >= 200 && code < 300)
        return "success";
    else if (code >= 400 && code < 500)
        return "client error";
    else
        return "other";
}
✓ Java 25 (Preview)
String classify(int code) {
    return switch (code) {
        case int c when c >= 200
            && c < 300 -> "success";
        case int c when c >= 400
            && c < 500 -> "client error";
        default -> "other";
    };
}
هل ترى مشكلة في هذا الكود؟ أخبرنا.
📦

لا تغليف

طابق الأنواع الأولية مباشرةً — لا حاجة لغلاف Integer.

🎯

تناسق الأنماط

نفس بنية النمط للكائنات والأنواع الأولية.

أداء أفضل

تجنّب تكلفة التغليف التلقائي في مطابقة الأنماط.

الأسلوب القديم
فحوصات النطاق اليدوية
الأسلوب الحديث
أنماط الأنواع الأولية
منذ JDK
25
الصعوبة
متقدم
الأنواع الأولية في الأنماط
معاينة

معاينة في JDK 25 (المعاينة الثالثة، JEP 507). يتطلب --enable-preview.

يُوسّع Java 25 مطابقة الأنماط للأنواع الأولية. يمكنك استخدام int و long و double وغيرها في أنماط switch مع حراس when مما يُزيل الحاجة للتغليف أو فحوصات النطاق اليدوية.

مشاركة 𝕏 🦋 in