Language متوسط

تحقق من القيم واحسبها قبل استدعاء 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 25 LTS (JEP 513، سبتمبر 2025).

يرفع Java 25 القيد الذي يشترط أن يكون super() أول عبارة. يمكنك الآن التحقق من الوسائط وحساب القيم المشتقة وإعداد الحالة قبل التفويض للمُنشئ الوالد.

مشاركة 𝕏 🦋 in