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.