Java · Avançado · Português · Técnico
construtor flexível
Recurso do Java 25 que permite escrever instruções antes de super(...) ou this(...) num construtor, desde que não usem this. Útil para validar argumentos antes de chamar o pai.
Onde usar
Aparece ao validar ou transformar argumentos antes de repassá-los à superclasse, algo que antes exigia métodos static auxiliares.
Em código
class Numero { Numero(int n) {} }
class Positivo extends Numero {
Positivo(int n) {
if (n <= 0)
throw new IllegalArgumentException();
super(n); // permitido no Java 25
}
}Exemplos
Com o construtor flexível, valida o argumento antes do super.
Não precisamos mais de um método static só para validar antes de chamar o pai.
Cuidado
Antes do super(...) não se pode ler nem chamar membros da instância; só usar parâmetros e valores locais.
Sinônimos
flexible constructor bodies