أجسام مُنشئات مرنة
تحقق من القيم واحسبها قبل استدعاء super() أو this().
مقارنة الكود
✕ Java 8
class Square extends Shape {
Square(double side) {
super(side, side);
// can't validate BEFORE super!
if (side <= 0)
throw new IAE("bad");
}
}
✓ Java 25+
class Square extends Shape {
Square(double side) {
if (side <= 0)
throw new IAE("bad");
super(side, side);
}
}
هل ترى مشكلة في هذا الكود؟ أخبرنا.
لماذا يتفوق الأسلوب الحديث
فشل سريع
تحقق من الوسائط قبل تشغيل مُنشئ الفئة الوالدة.
احسب أولاً
اشتق القيم وجهّز البيانات قبل استدعاء super().
لا حلول بديلة
لا مزيد من الدوال الثابتة المساعدة أو أنماط المصنع للتحايل على القيد.
الأسلوب القديم
التحقق بعد super()
الأسلوب الحديث
كود قبل super()
منذ JDK
25
الصعوبة
متوسط
دعم JDK
أجسام مُنشئات مرنة
متاح
أُنهي في JDK 25 LTS (JEP 513، سبتمبر 2025).
كيف يعمل
يرفع Java 25 القيد الذي يشترط أن يكون super() أول عبارة. يمكنك الآن التحقق من الوسائط وحساب القيم المشتقة وإعداد الحالة قبل التفويض للمُنشئ الوالد.
توثيق ذو صلة