Eclipse Ottimizza le importazioni per includere le importazioni statiche


411

Esiste un modo per convincere Eclipse a cercare automaticamente le importazioni statiche? Ad esempio, ora che ho finalmente eseguito l'aggiornamento a Junit 4, vorrei poter scrivere:

assertEquals(expectedValue, actualValue);

premi Ctrl+ Shift+ Oe fai aggiungere Eclipse:

import static org.junit.Assert.assertEquals;

Forse sto chiedendo troppo.

Risposte:


572

Sto usando Eclipse Europa, che ha anche la sezione delle preferenze preferite:

Finestra> Preferenze> Java> Editor> Assistente contenuto> Preferiti

Nel mio, ho le seguenti voci (quando si aggiunge, utilizzare "Nuovo tipo" e omettere il .*):

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

Tutti tranne il terzo sono importazioni statiche. Avendo quelli come preferiti, se digito " assertT" e premo Ctrl+Space , Eclipse offre assertThatun suggerimento e, se lo seleziono, aggiungerà l'importazione statica corretta al file.


26
Ah - il trucco è semplicemente aggiungere org.junit.Assertvia New Type..., .*è quindi implicito.
KomodoDave,

5
È corretto che l'importazione automatica Ctrl+Shift+onon aggiunga l'importazione necessaria e in effetti è necessario posizionare il cursore e scegliere l' Add static import..opzione? È un peccato che la normale finestra di dialogo con l'elenco delle selezioni di importazione automatica non venga visualizzata.
KomodoDave,

2
@ J.Stoever - Se stai utilizzando JUnit 4, vorrai utilizzare il modulo Hamcrest:assertThat(value, is(expected));
David Harkness,

2
Ho provato questo con Eclipse Kepler, ma senza risultati. Ho riavviato anche Eclipse. Nessun completamento automatico, nessuna scelta di importazione statica durante il passaggio o la pressione di CTRL + 1. Qualcuno ha riscontrato questo?
Magnilex,

2
Intellij Idea supporta questo immediatamente. La vergogna eclissi no.
Neeraj,

242

Se si evidenzia il metodo Assert.assertEquals(val1, val2)e si preme Ctrl+ Shift+ M(Aggiungi importazione), verrà aggiunto come importazione statica, almeno in Eclipse 3.4.


11
cmd-shift-M sul mac
Joshua Goldberg,

15
In Eclipse Juno sono riuscito a farlo funzionare solo se evidenzio solo il metodo e successivamente uso CTRL + MAIUSC + M.
ktulinho

5
Questo dovrebbe essere il vincitore!
Clint Eastwood,

Funziona anche con campi statici AX -> X (fortemente AX e Ctrl + Maiusc + M). Grazie. Esattamente quello che volevo.
Eyad Ebrahim,

5
Funziona per me su Luna. Assicurati che il cursore sia sul lato destro del punto. Vorrei averlo appreso anni fa!
HDave il

31

Eclipse 3.4 ha una sezione Preferiti in Finestra-> Preferenze-> Java-> Editor-> Content Assist

Se usi org.junit.Assertmolto, potresti trovare un valore per aggiungerlo lì.


21

Non esattamente quello che volevo, ma ho trovato una soluzione alternativa. In Eclipse 3.4 (Ganimede), vai a

Finestra-> Preferenze-> Java-> Editor-> Content Assist

e seleziona la casella di controllo Usa importazioni statiche (solo 1,5 o superiore) .

Ciò non porterà all'importazione su un Ottimizza importazioni, ma se si esegue una Correzione rapida ( CTRL+ 1) sulla riga, si avrà la possibilità di aggiungere l'importazione statica che è abbastanza buona.


10

Da Content assist per le importazioni statiche

Per ottenere proposte di assistenza ai contenuti per i membri statici, configura il tuo elenco di membri statici preferiti nella pagina delle Java > Editor > Content Assist > Favoritespreferenze della pagina delle preferenze di Apri .
Ad esempio, se hai aggiunto java.util.Arrays.*o org.junit.Assert.*a questo elenco, tutti i metodi statici di questo tipo corrispondenti al prefisso di completamento verranno aggiunti all'elenco delle proposte.

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

inserisci qui la descrizione dell'immagine


5

Per i test SpringFramework, consiglierei di aggiungere anche il seguito

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 aggiungi sopra come nuovo Tipo, aggiunge automaticamente. * Al pacchetto.



2

Seleziona la costante, digita

Ctrl + 1  (quick fix)

Seleziona "Converti in importazione statica". dal menu a discesa.

"Correzione rapida" ha opzioni anche se non è un errore.


1

In Eclipse 4.9, è possibile importare staticamente invocazioni esistenti utilizzando una soluzione rapida.

È stata implementata una nuova soluzione rapida che consente all'utente di convertire gli accessi ai campi statici e i metodi statici per utilizzare un'importazione statica. È anche possibile sostituire tutte le occorrenze contemporaneamente.

Maggiori dettagli qui

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.