ExpertiDict

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

delegação ao classloader pai

/delegaˈsɐ̃w aw ˈklæsˌloʊdər ˈpaj/substantivo

Regra pela qual um classloader pede primeiro ao pai para carregar uma classe e só tenta ele mesmo se o pai não encontrar. Evita duplicar classes do JDK.

Onde usar

Aparece em servidores de aplicação e plugins, que às vezes invertem a ordem. Explica por que não dá para 'substituir' java.lang.String.

Em código

var cl = Main.class.getClassLoader();
while (cl != null) {
  System.out.println(cl.getName());
  cl = cl.getParent();
}
// app, platform (o bootstrap é null)

Exemplos

Pela delegação ao pai, a classe do JDK sempre vence a sua cópia.

O plugin precisa inverter a delegação para usar a própria versão da lib.

Cuidado

Nem todo loader segue a regra: web containers como o Tomcat consultam primeiro as classes da própria aplicação, o que causa conflitos de versão sutis.

Sinônimos

parent delegation

Veja também

Todos os termos de Java