أنماط Record (التفكيك)
فكّك Records مباشرةً في الأنماط — استخرج الحقول في خطوة واحدة.
مقارنة الكود
✕ Java 8
if (obj instanceof Point) {
Point p = (Point) obj;
int x = p.getX();
int y = p.getY();
System.out.println(x + y);
}
✓ Java 21+
if (obj instanceof Point(int x, int y)) {
IO.println(x + y);
}
هل ترى مشكلة في هذا الكود؟ أخبرنا.
لماذا يتفوق الأسلوب الحديث
استخراج مباشر
الوصول لمكوّنات Record دون استدعاء دوال الوصول يدوياً.
قابل للتداخل
يمكن للأنماط التداخل — طابق Records الداخلية في تعبير واحد.
كود مضغوط
خمسة أسطر تصبح اثنين — طقوس أقل ووضوح مماثل.
الأسلوب القديم
وصول يدوي
الأسلوب الحديث
التفكيك
منذ JDK
21
الصعوبة
متوسط
دعم JDK
أنماط Record (التفكيك)
متاح
متاح على نطاق واسع منذ JDK 21 LTS (سبتمبر 2023)
كيف يعمل
تتيح أنماط Record تحليل مكوّنات Record مباشرةً في instanceof و switch. الأنماط المتداخلة مدعومة أيضاً مما يُتيح المطابقة العميقة دون متغيرات وسيطة.
توثيق ذو صلة