Language মধ্যম

super() বা this() মেথড কল করার আগে ভ্যালু ভ্যালিডেট (validate) এবং কম্পিউট (compute) করুন।

✕ 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);
    }
}
এই কোডে সমস্যা দেখছেন? আমাদের জানান।
🛡️

দ্রুত ব্যর্থ (Fail Fast)

সুপারক্লাস কনস্ট্রাক্টর রান করার আগে আর্গুমেন্ট ভ্যালিডেট করুন।

🧮

প্রথমে কম্পিউট (Compute First)

super() মেথড কল করার আগে ভ্যালু ডিরাইভ এবং ডেটা প্রস্তুত করুন।

🧹

কোনো ওয়ার্কআউট নেই

এই সীমাবদ্ধতা এড়াতে আর কোনো স্ট্যাটিক হেল্পার মেথড বা ফ্যাক্টরি প্যাটার্নের প্রয়োজন নেই।

পুরনো পদ্ধতি
super() এর পরে ভ্যালিডেট (Validate After super())
আধুনিক পদ্ধতি
super() এর আগে কোড (Code Before super())
JDK থেকে
25
কঠিনতা
মধ্যম
ফ্লেক্সিবল কনস্ট্রাক্টর বডিস (Flexible Constructor Bodies)
উপলব্ধ

JDK 25 LTS (JEP 513, সেপ্টেম্বর 2025) এ চূড়ান্ত হয়েছে।

Java 25 এই সীমাবদ্ধতা তুলে নিয়েছে যে super() অবশ্যই প্রথম স্টেটমেন্ট হতে হবে। এখন আপনি প্যারেন্ট কনস্ট্রাক্টরের কাছে ডেলিগেট করার আগে আর্গুমেন্ট ভ্যালিডেট করতে, ডিরাইভড ভ্যালু (derived values) কম্পিউট করতে এবং স্টেট সেটআপ করতে পারবেন।