Language متوسط

تحقق من حقول 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 16 (مارس 2021)

يمكن لـ Records تصريح مُنشئ قانوني مضغوط يُهمل قائمة المعاملات وإسناد الحقول. يُسنِد المترجم المعاملات تلقائياً للحقول بعد تشغيل منطق التحقق. هذا مثالي لفحوصات الشروط المسبقة والنسخ الدفاعية والتطبيع.

مشاركة 𝕏 🦋 in