مُنشئ قانوني مضغوط
تحقق من حقول Record ونظّمها دون تكرار قوائم المعاملات.
مقارنة الكود
✕ Java 16
public record Person(String name,
List<String> pets) {
// Full canonical constructor
public Person(String name,
List<String> pets) {
Objects.requireNonNull(name);
this.name = name;
this.pets = List.copyOf(pets);
}
}
✓ Java 16+
public record Person(String name,
List<String> pets) {
// Compact constructor
public Person {
Objects.requireNonNull(name);
pets = List.copyOf(pets);
}
}
هل ترى مشكلة في هذا الكود؟ أخبرنا.
لماذا يتفوق الأسلوب الحديث
تكرار أقل
لا حاجة لتكرار قائمة المعاملات أو إسناد كل حقل يدوياً.
تحقق
مثالي للتحقق من null وتحقق النطاق والنسخ الدفاعية.
نية أوضح
البنية المضغوطة تُبرز التحقق لا الكليشيه.
الأسلوب القديم
تحقق صريح في المُنشئ
الأسلوب الحديث
مُنشئ مضغوط
منذ JDK
16
الصعوبة
متوسط
دعم JDK
مُنشئ قانوني مضغوط
متاح
متاح على نطاق واسع منذ JDK 16 (مارس 2021)
كيف يعمل
يمكن لـ Records تصريح مُنشئ قانوني مضغوط يُهمل قائمة المعاملات وإسناد الحقول. يُسنِد المترجم المعاملات تلقائياً للحقول بعد تشغيل منطق التحقق. هذا مثالي لفحوصات الشروط المسبقة والنسخ الدفاعية والتطبيع.
توثيق ذو صلة