Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

O Import Static Carrega todas as Classes de maneira estática na Classe

Olá queria saber se quando usamos o import static ele carrega em memória de maneira estática todas as classes filhas do pacote importado como no exemplo abaixo

import static java.util.Comparator.*;

Por que se for assim, quando usado vai consumir muito mais memória?

1 resposta
solução!

Boa noite, Felipe! Como vai?

Se vc reparar, na importação estática que vc exemplificou não é um pacote que está sendo referenciado e sim uma interface! Enquanto na importação normal nós importamos classes, interfaces ou anotações, na importação estática nós importamos métodos estáticos de classes ou interfaces!

Ou seja, no caso dessa importação estática que vc fez, vc está importando todos os métodos estáticos da interface Comparator.

Certamente agora vc está se perguntando: "Mas o que eu ganho com isso?"

Agora que vem o pulo do gato, meu aluno! Vou te tirar das trevas e levá-lo para a luz!

Dessa forma, em vez de escrever Comparator.comparing(...), vc passa a poder escrever apenas comparing(...) omitindo o nome da interface e o ponto antes do nome do método.

Imagina aí um código onde vc tivesse que invocar diversos métodos estáticos da interface Comparator! Seria chatão ter que escrever toda hora algo como Comparator.nomeDoMetodo(). A boa notícia é que temos a importação estática pra nos ajudar nesses casos!

Pegou a ideia? Qualquer coisa é só falar!

Grande abraço e bons estudos!