Qualche modo (o scorciatoia) per importare automaticamente le classi in IntelliJ IDEA come in Eclipse?


123

In Eclipse, durante la codifica in Java e premi Ctrl+ Shift+ Oimporta automaticamente tutte le classi automaticamente.
In NetBeans, questo viene fatto con Ctrl+ Shift+ I.

C'è un modo per farlo in IntelliJ IDEA?

Ho cercato una scorciatoia equivalente in google, StackOverflow, configurazione IntelliJ IDEA e nel sito web ufficiale di IntelliJ Scorciatoie da tastiera da non perdere



4
Quando cerchi un comando / scorciatoia da tastiera, digita Ctrl-Maiusc-A (o Cmd-Maiusc-A su Mac) e cerca il comando. Ad esempio qui, digitando "importazioni" verrà visualizzato il comando "Ottimizza importazioni" e la sua scorciatoia da tastiera.
JB Nizet

2
"Ottimizza importazioni" non funziona aggiungi le classi
bywronski

L'importazione automatica delle classi funziona se abilitata in "Impostazioni> Editor> Generali> Importazione automatica".
Andrea Bergonzo

questo è davvero il più grande difetto di intellij. è un dolore. ottenere conflitti e unioni sulle importazioni è stupido, ma intellij non può aiutarti facilmente a risolverlo
bharal

Risposte:


103

IntelliJ IDEA non dispone di un'azione per aggiungere importazioni. Piuttosto ha la capacità di fare come digiti. Se abiliti "Aggiungi importazioni non ambigue al volo" in Impostazioni> Editor> Generali> Importazione automatica , IntelliJ IDEA le aggiungerà durante la digitazione senza bisogno di scorciatoie. Puoi anche aggiungere classi e pacchetti da escludere dall'importazione automatica per rendere inequivocabile una classe che usi pesantemente, che si scontra con altre classi con lo stesso nome.

Per le classi che sono ambigue (o se preferisci che l'opzione "Aggiungi importazioni non ambigue al volo" sia disattivata), digita semplicemente il nome della classe (solo il nome è OK, non è necessario qualificarti completamente). Usa il completamento del codice e seleziona la classe specifica che desideri:

inserisci qui la descrizione dell'immagine

Notare i nomi completi a destra. Quando seleziono quello che desidero e premo invio, IDEA aggiungerà automaticamente l'istruzione di importazione. Funziona allo stesso modo se stavo digitando il nome di un costruttore. Per i metodi statici, puoi anche continuare a digitare il metodo che desideri. Nello screenshot seguente, nessuna classe "StringUtils" è ancora importata.

inserisci qui la descrizione dell'immagine

In alternativa, digita il nome della classe, quindi premi Alt+ Entero + Enterper "Mostra azioni intenzionali e soluzioni rapide", quindi seleziona l'opzione di importazione.

Anche se non l'ho mai usato, penso che il plug-in di terze parti Eclipse Code Formatter farà quello che vuoi. Elenca "emula l'ottimizzazione delle importazioni di Eclipse" come funzionalità. Vedere le sue istruzioni per ulteriori informazioni. Ma alla fine, sospetto che scoprirai che le funzionalità IDEA integrate funzionano bene una volta che ti sarai abituato al loro paradigma. In generale, IDEA utilizza un concetto di "sviluppo per intenzioni". Quindi, invece di interrompere il mio lavoro di sviluppo per aggiungere un'istruzione import, digito semplicemente la classe che voglio (la mia intenzione) e IDEA aggiunge automaticamente l'istruzione import per la classe per me.


7
È molto più lavoro in questo modo quando modifichi vecchi file.
Adam

Questo non funziona per me. Quando premo Invio dopo aver selezionato una classe che appare nell'elenco di completamento automatico, IntelliJ non la importa. Invece, scrive il nome completo della classe. Questo è molto fastidioso e inutile. Sai come aggiustarlo?
Rodrigo

^ la ragione di questo comportamento è che la classe che stavo cercando di importare non era nel percorso di compilazione. Una volta aggiunto, premendo Invio è stata importata correttamente la classe.
Rodrigo

3
Ero arrivato a questa domanda sperando di trovare una simile scorciatoia da tastiera per IntelliJ. Il problema è che se commento un'ampia sezione di codice contenente classi, IntelliJ rimuove automaticamente le importazioni dello spazio dei nomi. Ora, se vado a rimuovere il commento dal codice, IntelliJ non reimporterà gli spazi dei nomi per lo stesso e diventa un bel grattacapo continuare a fare ALT + Invio per ciascuno di essi. Qualche soluzione?
Rahul Saini

Sono d'accordo con @RahulSaini su questo. Non c'è motivo di avere due mappe chiave separate per una singola attività. Non voglio e non dovrei fare più cose per realizzare una singola azione. Direi che a questo punto intellij è solo belligerante al riguardo e non ha una vera ragione per non "organizzare" le importazioni invece di "ottimizzare" le importazioni. Voglio davvero votare a favore di questa risposta anche se è tecnicamente corretta.
peekay

73

Non tutto in una volta. Ma puoi premere

Alt + Enter

Le persone presumono che funzioni solo quando ti trovi in ​​un particolare oggetto. Ma in realtà funziona per il "prossimo tipo mancante". Quindi, se continui a premere Alt+ Enter, IDEA si corregge uno dopo l'altro finché non vengono risolti tutti.


1
Presumo che ti riferisci ai simboli dei tasti della tastiera. Questi possono essere aggiunti utilizzando il kbdtag<kbd>Alt</kbd> + <kbd>Enter</kbd>
GuiSim

1
Vai alla classe che non è in grado di trovare e premi ⌥ + Invio. Sono contento di aver fatto scorrere verso il basso.
Ajak6

1
C'è un modo per rimappare Alt+Entera una combinazione più facile da usare? Non sono riuscito a capirlo attraverso il IntelliJ IDEA > Preferences > Keymapmenu.
laylaylom

1
Ho trovato il modo Eclipse di perdere l'aggiunta della dichiarazione di importazione più facile di IDEA. Mi confondo sempre dove posizionare il cursore del mouse prima di digitare Alt + Invio
vikramvi

Alt + Invio in combinazione con F2 (Next Highlighted Error) di solito è abbastanza veloce anche per classi (troppo) grandi.
osundblad

10

Sembra che IntelliJ IDEA importerà automaticamente le lezioni perse e puoi importarle premendo Alt+ Entermanualmente.


8

Penso che la soluzione migliore, sebbene non esattamente la stessa di Eclipse / Netbeans, sia modificare le impostazioni di "Ottimizza importazioni".

Sotto Preferences > Editor > General > Auto Import

Impostato Add unambiguous imports on the fly

Modifica: utilizzando questo metodo, quando ci sono importazioni ambigue, IntelliJ te lo farà sapere e potrai quindi usare il metodo Alt+ Enterdelineato nella risposta di Wuaner

Trovo che, quasi sempre, l'importazione più appropriata sia in cima alla lista.


1
@Raja non sono sicuro neanche del motivo. So che quando ho detto ai miei colleghi che hanno scelto di non usare questo metodo però ... misterioso.
comfytoday

Le istruzioni sono abbastanza chiare. Importa solo automaticamente le unambiguousclassi. E lo uso dagli ultimi due giorni nel mio progetto di oltre 3000 classi. Funziona come un fascino. Grazie per la condivisione.
Raja Anbazhagan

5

Non è possibile importare tutto in una volta ma è possibile utilizzare la seguente combinazione:

ALT+ Enter-> Mostra azioni intenzionali e soluzioni rapide.

F2 -> Prossimo errore evidenziato.


3

Un'altra opzione è chiedere a IDEA di comportarsi come eclipse con i tasti di scelta rapida di eclipse. Puoi usare tutte le scorciatoie di eclipse abilitandolo.

Ecco i passaggi:

1- Con IDEA aperto, premere Control + ` . Verranno visualizzate le seguenti opzioni.

inserisci qui la descrizione dell'immagine

2- Seleziona Keymap. Vedrai un altro pop-up. Seleziona Eclipse lì.

inserisci qui la descrizione dell'immagine

3- Ora premiCtrl + Shift + O . Hai fatto!


Provai. Non fa in modo che "organizza le importazioni" si comporti in modo Eclipse.
Florian F

0

Usa control+ option+ Lper importare automaticamente il pacchetto e rimuovere automaticamente i pacchetti inutilizzati su Mac

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.