مطابقة الأنماط لـ instanceof
ادمج فحص النوع والتحويل في خطوة واحدة بمطابقة الأنماط.
مقارنة الكود
✕ Java 8
if (obj instanceof String) {
String s = (String) obj;
System.out.println(s.length());
}
✓ Java 16+
if (obj instanceof String s) {
IO.println(s.length());
}
هل ترى مشكلة في هذا الكود؟ أخبرنا.
لماذا يتفوق الأسلوب الحديث
لا تحويل مكرر
فحص النوع وربط المتغير يحدثان في تعبير واحد.
أسطر أقل
سطر واحد بدلاً من اثنين — سطر التحويل يختفي كلياً.
أمان النطاق
متغير النمط في النطاق فقط أين النوع مضمون.
الأسلوب القديم
instanceof + تحويل
الأسلوب الحديث
متغير النمط
منذ JDK
16
الصعوبة
مبتدئ
دعم JDK
مطابقة الأنماط لـ instanceof
متاح
متاح على نطاق واسع منذ JDK 16 (مارس 2021)
كيف يعمل
تُزيل مطابقة الأنماط لـ instanceof التحويلَ المكرر بعد فحص النوع. المتغير محدود النطاق تلقائياً إلى أين يتطابق النمط مما يجعل الكود أكثر أماناً وأقصر.
توثيق ذو صلة