Eclipse Optimize Imports para incluir importações estáticas


411

Existe alguma maneira de fazer o Eclipse procurar automaticamente importações estáticas? Por exemplo, agora que finalmente atualizei para o dia 4 de junho, gostaria de poder escrever:

assertEquals(expectedValue, actualValue);

pressione Ctrl+ Shift+ Oe adicione o Eclipse:

import static org.junit.Assert.assertEquals;

Talvez eu esteja pedindo demais.

Respostas:


572

Estou usando o Eclipse Europa, que também tem a seção de preferências Favoritas:

Janela> Preferências> Java> Editor> Assistente de Conteúdo> Favoritos

Na minha, tenho as seguintes entradas (ao adicionar, use "New Type" e omita o .*):

org.hamcrest.Matchers.*
org.hamcrest.CoreMatchers.*
org.junit.*
org.junit.Assert.*
org.junit.Assume.*
org.junit.matchers.JUnitMatchers.*

Todos, exceto o terço, são importações estáticas. Ao tê-los como favoritos, se eu digitar " assertT" e pressionar Ctrl+Space , o Eclipse será oferecido assertThatcomo sugestão e, se eu escolher, ele adicionará a importação estática adequada ao arquivo.


26
Ah - o truque é simplesmente adicionar org.junit.Assertvia New Type..., o .*é então implícito.
KomodoDave 30/08/2012

5
É correto que a importação automática Ctrl+Shift+onão adicione a importação necessária e, na verdade, você deve passar o cursor e escolher a Add static import..opção? É uma pena que o diálogo comum da lista de seleção de importação automática não seja exibido.
KomodoDave 30/08/2012

2
@ J.Stoever - Se você estiver usando o JUnit 4, use o formulário Hamcrest:assertThat(value, is(expected));
David Harkness

2
Eu tentei isso com o Eclipse Kepler, mas sem sucesso. Eu reiniciei o Eclipse também. Sem preenchimento automático, sem opção de importação estática ao pressionar ou pressionar CTRL + 1. Alguém experimentou isso?
Magnilex

2
O Intellij Idea suporta isso imediatamente. Vergonha eclipse não.
Neeraj 22/02

242

Se você destacar o método Assert.assertEquals(val1, val2)e pressionar Ctrl+ Shift+ M(Adicionar importação), ele será adicionado como uma importação estática, pelo menos no Eclipse 3.4.


11
cmd-shift-M no mac
Joshua Goldberg

15
Em Eclipse Juno eu só conseguiu fazê-lo funcionar se eu destacar apenas o método e, depois, usar o CTRL + SHIFT + M.
ktulinho

5
Este deve ser o vencedor!
Clint Eastwood

Funciona também para os campos estáticos AX -> X (altamente AX e Ctrl + Shift + M). Obrigado. Exatamente o que eu queria.
Eadhim Eyad

5
Funciona para mim na Luna. Verifique se o cursor está no lado direito do período. Gostaria de ter aprendido sobre isso anos atrás!
precisa saber é o seguinte

31

O Eclipse 3.4 possui uma seção Favoritos em Janela-> Preferências-> Java-> Editor-> Assistente de Conteúdo

Se você usa org.junit.Assertmuito, pode encontrar algum valor para adicioná-lo lá.


21

Não era exatamente o que eu queria, mas encontrei uma solução alternativa. No Eclipse 3.4 (Ganímedes), vá para

Janela-> Preferências-> Java-> Editor-> Assistente de Conteúdo

e marque a caixa de seleção Usar importações estáticas (apenas 1.5 ou superior) .

Isso não trará a importação em um Optimize Imports, mas se você fizer uma Correção Rápida ( CTRL+ 1) na linha, você terá a opção de adicionar a importação estática, o que é bom o suficiente.


10

Do assistente de Conteúdo para importações estáticas

Para obter propostas de assistência de conteúdo para membros estáticos, configure sua lista de membros estáticos favoritos na página de Java > Editor > Content Assist > Favoritespreferências Abre a página de preferências Favoritos .
Por exemplo, se você adicionou java.util.Arrays.*ou org.junit.Assert.*a esta lista, todos os métodos estáticos desse tipo que correspondem ao prefixo de conclusão serão adicionados à lista de propostas.

Aberto Window » Preferences » Java » Editor » Content Assist » Favorites

insira a descrição da imagem aqui


5

Para os testes SpringFramework, eu recomendaria adicionar o abaixo também

org.springframework.test.web.servlet.request.MockMvcRequestBuilders
org.springframework.test.web.servlet.request.MockMvcResponseBuilders
org.springframework.test.web.servlet.result.MockMvcResultHandlers
org.springframework.test.web.servlet.result.MockMvcResultMatchers
org.springframework.test.web.servlet.setup.MockMvcBuilders
org.mockito.Mockito

Quando você adiciona acima como novo Type, ele adiciona automaticamente. * Ao pacote.



2

Selecione a constante, digite

Ctrl + 1  (quick fix)

Selecione "Converter em importação estática". do menu suspenso.

"Solução rápida" tem opções, mesmo que não seja um erro.


1

No Eclipse 4.9, é possível importar estática chamadas existentes usando uma correção rápida.

Uma nova solução rápida foi implementada que permite ao usuário converter acessos estáticos de campo e métodos estáticos para usar uma importação estática. Também é possível substituir todas as ocorrências ao mesmo tempo.

Mais detalhes aqui

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.