Records لفئات البيانات
سطر واحد يستبدل أكثر من 30 سطراً من الكليشيهات لحاملات البيانات الثابتة.
مقارنة الكود
✕ Java 8
public class Point {
private final int x, y;
public Point(int x, int y) { ... }
public int getX() { return x; }
public int getY() { return y; }
// equals, hashCode, toString
}
✓ Java 16+
public record Point(int x, int y) {}
هل ترى مشكلة في هذا الكود؟ أخبرنا.
لماذا يتفوق الأسلوب الحديث
تعريف بسطر واحد
سطر واحد يستبدل المُنشئ ودوال الجلب و equals و hashCode و toString.
ثابتة بشكل افتراضي
جميع الحقول نهائية — لا أخطاء setters.
صديقة للأنماط
Records تعمل مع أنماط التفكيك في switch و instanceof.
الأسلوب القديم
POJO مطوّل
الأسلوب الحديث
record
منذ JDK
16
الصعوبة
مبتدئ
دعم JDK
Records لفئات البيانات
متاح
متاح على نطاق واسع منذ JDK 16 (مارس 2021)
كيف يعمل
تولّد Records تلقائياً المُنشئ ودوال الوصول (x() و y()) و equals() و hashCode() و toString(). وهي ثابتة بتصميمها ومثالية لـ DTOs وكائنات القيم ومطابقة الأنماط.
توثيق ذو صلة