ExpertiDict

Java · Avançado · Português · Técnico

inicializador estático

/inisjalizaˈdoɾ esˈtatʃiku/substantivo

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

Veja também

Todos os termos de Java