Popularidade dos "import static"!

11 respostas
Y

Alguém alguma idéia de quão popular se tornou o recurso dos importes státicos do JDK 5.0??

Todos os outros recursos me parecem bastante uteis e os utilizo com frequência em meus projetos porém este recurso em particular não me deixa muito confortavel, os imports ficam muito grandes.

Além disso nunca encontrei nenhum projeto baseado no JDK 5.0 que utilize os importes státicos.

Gostaria de saber se alguém usa com frequência e argumenta a favor dos mesmo, ou se conhece algum projeto, respeitavel, que faça uso de tal recurso.

11 Respostas

Mauricio_Linhares

Rapaz, eu uso muito pra evitar os System.out.println e os “assert” do JUnit 4, além disso, não lembro de mais nada não.

N

O static import é para qdo. vc tiver um método estático numa classe e quiser importar este método sem necessidade de chamar o nome da classe.
Eu utilizo com algumas classes minhas para funções, e algumas API com métodos estáticos. Tb achei que ia servir para nada, mas estou usando bastante para quem aprendeu a pouco tempo.

Daniel_Quirino_Olive

Eu não uso. Imagine o seguinte:

import static java.lang.Math.*;

public class Foo {

   // alguns zilhões de métodos e atributos depois...
   public double bar(double x) {
        return PI*pow(x, 2.0d);
   }
   // mais alguns zilhões de métodos e atributos...


}

Daí, alguns dias depois…

import static java.lang.Math.*;

public class Foo {

   // alguns zilhões de métodos e atributos depois...
   public double bar(double x) {
        return PI*pow(x, 2.0d);
   }
   // mais alguns zilhões de métodos e atributos...
   private static final double PI = 1;

}

E, voilà, seu sistema pára de funcionar sem nenhuma maldita explicação :wink:

F

Olá,

Eu uso tanto que nem lembrava mais que tinham adicionado essa funcionalidade :?

]['s

T

Em particular acho “import static” um pouco confuso. Vamos ver se vai aparecer uma regra para o Checkstyle ou PMD proibindo usar “import static” :stuck_out_tongue:

rmarin

Cara simplesmente não uso por que tem que editar a parte onde ficam os imports manualmente. Eu nunca edito esta parte, o Eclipse resolve tudo, basta um ctrl+shift+o e pronto. Nem lembro que existem imports tal é a facilidade de lidar com eles no em IDEs. Claro que as vezes dou uma olhadinha nos imports imports para ver quais classes estão sendo usadas, mas acho muito inconveniente ter que ir na linha do import, escrever static e depois o étodo ou atributo que desejo.

Qu nem import com ‘*’ no final. É muito ruim, você não consegue saber exatamente quais classes estão sendo usadas. Acho que issso serve para quando você está trabalhando no bloco de notas, ou similar, e não quer digitar a linha do import, aí sim acho que é válido. Agora com IDEs não! :wink:

cv1

thingol:
Em particular acho “import static” um pouco confuso. Vamos ver se vai aparecer uma regra para o Checkstyle ou PMD proibindo usar “import static” :stuck_out_tongue:

Ja escrevi uma, estou esperando o fim de semana pra mandar pros caras do PMD :slight_smile:

sunshine

utilizo “import static” somente quando realizo testes unitários com o EasyMock

Código sem import static

UmaClasseQualquer objeto = EasyMock.createMock(UmaClasseQualquer.class)
 EasyMock.expect(objeto.getPeso()).andReturn(12);
 .....
 EasyMock.replay(mock);
 ....
 EasyMock.verify(mock);

Código com import static

UmaClasseQualquer objeto = createMock(UmaClasseQualquer.class)
 expect(objeto.getPeso()).andReturn(12);
 .....
 replay(mock);
 ....
 verify(mock);

Creio que facilita!
http://www.guj.com.br/posts/list/37598.java

grprado

Qual o problema em digitar EM<ctrl+space> .rep <ctrl+space> ?

IMHO static imports deixam o codigo porcamente e toscamente mais complicados de ler. Qualquer boa IDE suprime com gosto essa (péssima) inovação do Java SE 5

Thiagosc

É o tipo de feature que você não dá nada, mas acaba viciando, principalmente pela automatização da IDE.

Se eu precisasse gerar “static imports” manualmente eu não o faria porque seria um nojo, mas como a IDE faz o gerenciamento de imports de forma automática então é muito bom! O código fica mais limpo e mais fácil de ler.

Se você for parar para pensar, o que importa são os métodos estarem associados a classes de forma que toda a estrutura faça sentido seguindo o paradigma OO, mas você não precisa por exemplo ver a todo momento "MessageFormat.format… MessageFormat.format… " porque você já sabe que o “format” faz parte do MessageFormat. Esse tipo de informação é redundante.

Eliminação de redundâncias, essa é o nome da vantagem.

rbcunha

Também não uso…

Criado 2 de agosto de 2006
Ultima resposta 5 de ago. de 2006
Respostas 11
Participantes 12