Language Intermedio

Valida e calcola valori prima di chiamare super() o 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);
    }
}
Vedi un problema con questo codice? Faccelo sapere.
🛡️

Fail fast

Valida gli argomenti prima che il costruttore della superclasse venga eseguito.

🧮

Calcola prima

Deriva valori e prepara i dati prima di chiamare super().

🧹

Nessun workaround

Niente più metodi helper statici o factory pattern per aggirare la restrizione.

Approccio Vecchio
Valida dopo super()
Approccio Moderno
Codice prima di super()
Dal JDK
25
Difficoltà
Intermedio
Corpi di costruttore flessibili
Disponibile

Finalizzato nel JDK 25 LTS (JEP 513, settembre 2025).

Java 25 rimuove la restrizione che super() debba essere la prima istruzione. Ora puoi validare argomenti, calcolare valori derivati e preparare lo stato prima di delegare al costruttore padre.

Condividi 𝕏 🦋 in