Java · Avançado · Português · Técnico
inicializador estático
Bloco static { } que roda uma vez, quando a classe é inicializada, antes de qualquer uso. Serve para preparar campos estáticos complexos.
Onde usar
Aparece em ExceptionInInitializerError e NoClassDefFoundError: se o bloco lançar exceção, a classe fica inutilizável naquela JVM.
Em código
class Config {
static final Map<String, String> M;
static {
M = new HashMap<>();
M.put("modo", "prod");
}
}Exemplos
O inicializador estático lançou exceção e a classe nunca mais carregou.
Move essa lógica do bloco static para um método de fábrica.
Cuidado
Evite lógica pesada ou I/O nele: roda dentro do carregamento da classe, falhas são difíceis de diagnosticar e há risco de deadlock.
Sinônimos
bloco static