الأنواع الأولية في الأنماط
مطابقة الأنماط تعمل الآن مع الأنواع الأولية لا مع الكائنات فحسب.
مقارنة الكود
✕ 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
الأنواع الأولية في الأنماط
معاينة
معاينة في JDK 25 (المعاينة الثالثة، JEP 507). يتطلب --enable-preview.
كيف يعمل
يُوسّع Java 25 مطابقة الأنماط للأنواع الأولية. يمكنك استخدام int و long و double وغيرها في أنماط switch مع حراس when مما يُزيل الحاجة للتغليف أو فحوصات النطاق اليدوية.
توثيق ذو صلة