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.

Paul Croarkin
fonte

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.

Joey Gibson
fonte
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.

Dave L.
fonte
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á.

Bill Michell
fonte
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.

Paul Croarkin
fonte
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

Sumit Singh
fonte
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.

Neeraj
fonte
3

Atalho para importação estática: CTRL + SHIFT + M

Michael Hegner
fonte
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.

teknopaul
fonte
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

Ankit Soni
fonte