Language Intermedio

Valida y calcula valores antes de llamar a 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);
    }
}
¿Ves un problema con este código? Cuéntanos.
🛡️

Fallo rápido

Valida los argumentos antes de que se ejecute el constructor de la superclase.

🧮

Calcular primero

Deriva valores y prepara datos antes de llamar a super().

🧹

Sin soluciones alternativas

No más métodos estáticos auxiliares ni patrones factory para sortear la restricción.

Enfoque Antiguo
Validar después de super()
Enfoque Moderno
Código antes de super()
Desde JDK
25
Dificultad
Intermedio
Cuerpos de constructor flexibles
Disponible

Finalizado en JDK 25 LTS (JEP 513, sept. 2025).

Java 25 elimina la restricción de que super() debe ser la primera sentencia. Ahora puedes validar argumentos, calcular valores derivados y preparar estado antes de delegar al constructor padre.

Compartir 𝕏 🦋 in