Un moyen (ou un raccourci) pour importer automatiquement les classes dans IntelliJ IDEA comme dans Eclipse?

124

Dans Eclipse, tout en codant en Java et appuyez sur Ctrl+ Shift+ Oimporter automatiquement toutes les classes automatiquement.
Dans NetBeans, cela se fait avec Ctrl+ Shift+ I.

Existe-t-il un moyen de le faire dans IntelliJ IDEA?

J'ai recherché un raccourci équivalent dans la configuration de google, StackOverflow, IntelliJ IDEA et sur le site Web officiel IntelliJ Raccourcis clavier que vous ne pouvez pas manquer

Bywronski
la source
4
Lorsque vous recherchez une commande / un raccourci clavier, tapez Ctrl-shift-A (ou Cmd-shift-A sur Mac) et recherchez la commande. Par exemple ici, taper "importations" vous montrera la commande "Optimiser les importations", et son raccourci clavier.
JB Nizet
2
«Optimiser les importations» ne fonctionne pas ajouter les classes
bywronski
L'importation automatique des classes fonctionne si vous l'activez sous "Paramètres> Editeur> Général> Importation automatique".
Andrea Bergonzo
c'est vraiment le plus gros défaut d'intellij. c'est une douleur. obtenir des conflits et des fusions sur les importations est stupide, mais intellij ne peut pas facilement vous aider à le résoudre
bharal

Réponses:

104

IntelliJ IDEA n'a pas d'action pour ajouter des importations. Il a plutôt la capacité de faire ce que vous tapez. Si vous activez l'option «Ajouter des importations sans ambiguïté à la volée» dans Paramètres> Éditeur> Général> Importation automatique , IntelliJ IDEA les ajoutera au fur et à mesure que vous tapez sans avoir besoin de raccourcis. Vous pouvez également ajouter des classes et des packages à exclure de l'importation automatique pour rendre une classe que vous utilisez beaucoup, qui entre en conflit avec d'autres classes du même nom, sans ambiguïté.

Pour les classes ambiguës (ou si vous préférez avoir l'option "Ajouter des importations non ambiguës à la volée" désactivée), tapez simplement le nom de la classe (juste le nom est OK, pas besoin de se qualifier complètement). Utilisez la complétion de code et sélectionnez la classe particulière que vous souhaitez:

entrez la description de l'image ici

Notez les noms complets à droite. Lorsque je sélectionne celui que je veux et appuie sur Entrée, IDEA ajoute automatiquement l'instruction d'importation. Cela fonctionne de la même manière si je tapais le nom d'un constructeur. Pour les méthodes statiques, vous pouvez même continuer à taper la méthode souhaitée. Dans la capture d'écran suivante, aucune classe "StringUtils" n'est encore importée.

entrez la description de l'image ici

Sinon, tapez le nom de la classe, puis appuyez sur Alt+ Enterou + Enterpour "Afficher les actions d'intention et les correctifs rapides", puis sélectionnez l'option d'importation.

Bien que je ne l'ai jamais utilisé, je pense que le plug-in tiers Eclipse Code Formatter fera ce que vous voulez. Il répertorie "émule l'optimisation des importations d'Eclipse" comme une fonctionnalité. Consultez ses instructions pour plus d'informations. Mais en fin de compte, je suppose que vous trouverez que les fonctionnalités intégrées d'IDEA fonctionnent bien une fois que vous vous serez habitué à leur paradigme. En général, IDEA utilise un concept de «développement par intentions». Donc, plutôt que d'interrompre mon travail de développement pour ajouter une instruction d'importation, je tape simplement la classe que je veux (mon intention) et IDEA ajoute automatiquement l'instruction d'importation pour la classe pour moi.

Javaru
la source
7
C'est beaucoup plus de travail de cette façon lorsque vous éditez d'anciens fichiers.
Adam
Cela ne fonctionne pas pour moi. Lorsque j'appuie sur Entrée après avoir sélectionné une classe qui apparaît dans la liste de saisie semi-automatique, IntelliJ ne l'importe pas. Au lieu de cela, il écrit le nom complet de la classe. C'est très ennuyeux et inutile. Savez-vous comment résoudre ce problème?
Rodrigo
^ la raison de ce comportement est que la classe que j'essayais d'importer n'était pas dans le chemin de construction. Une fois ajouté, appuyer sur Entrée a correctement importé la classe.
Rodrigo
3
J'étais venu à cette question dans l'espoir de trouver un tel raccourci clavier pour IntelliJ. Le problème est que si je commente une grande section de code contenant des classes, IntelliJ supprime automatiquement les importations d'espace de noms. Maintenant, si je décommente le code, IntelliJ ne réimporte pas les espaces de noms pour le même et cela devient un véritable casse-tête de continuer à faire ALT + Entrée pour chacun d'eux. Toute solution?
Rahul Saini
Je suis d'accord avec @RahulSaini à ce sujet. Il n'y a aucune raison d'avoir deux cartes clés distinctes pour une seule activité. Je ne veux pas et ne devrais pas avoir à faire plusieurs choses pour accomplir une seule action. Je dirais qu'à ce stade, intellij est simplement belliqueux à ce sujet et n'a aucune raison réelle de ne pas "organiser" les importations plutôt que d '"optimiser" les importations. Je veux vraiment voter contre cette réponse, même si elle est techniquement correcte.
peekay
73

Pas tout à la fois. Mais tu peux appuyer

Alt + Enter

Les gens supposent que cela ne fonctionne que lorsque vous êtes à l'article particulier. Mais cela fonctionne réellement pour le "prochain type manquant". Donc, si vous continuez d'appuyer sur Alt+ Enter, IDEA corrige l'un après l'autre jusqu'à ce que tout soit corrigé.

teknopaul
la source
1
Je suppose que vous faites référence aux symboles des touches du clavier. Ceux-ci peuvent être ajoutés en utilisant le kbdtag<kbd>Alt</kbd> + <kbd>Enter</kbd>
GuiSim
1
Accédez à la classe qu'il ne parvient pas à trouver et appuyez sur ⌥ + Entrée. Heureux d'avoir fait défiler vers le bas.
Ajak6
1
Existe-t-il un moyen de remapper Alt+Entervers une combinaison plus conviviale pour les doigts? Je ne pouvais pas le comprendre à travers le IntelliJ IDEA > Preferences > Keymapmenu.
laylaylom
1
J'ai trouvé le moyen Eclipse de manquer l'ajout de déclaration d'importation plus facile que celui d'IDEA. Je ne sais toujours pas où placer le curseur de la souris avant de taper Alt + Entrée
vikramvi
Alt + Entrée en combinaison avec F2 (Next Highlighted Error) est généralement assez rapide, même pour les (trop) grandes classes.
osundblad
10

On dirait qu'IntelliJ IDEA importera automatiquement les classes manquées et vous pouvez les importer manuellement par hit Alt+ Enter.

Wuaner
la source
8

Je pense que la meilleure solution, bien que pas exactement la même qu'Eclipse / Netbeans, est de modifier les paramètres «Optimiser les importations».

Sous Preferences > Editor > General > Auto Import

Ensemble Add unambiguous imports on the fly

Edit: En utilisant cette méthode, quand il y a des importations ambiguës, IntelliJ vous permettra de savoir, et vous pouvez ensuite utiliser Alt+ Enterméthode décrite dans la réponse par Wuaner

Je trouve que, presque toujours, l'importation la plus appropriée est en haut de la liste.

confortable aujourd'hui
la source
1
@Raja Je ne sais pas pourquoi non plus. Je sais que quand j'ai dit à mes collègues, ils ont choisi de ne pas utiliser cette méthode ... mystérieuse.
comfytoday
Les instructions sont assez claires. Il importe uniquement les unambiguousclasses automatiquement . Et je l'utilise depuis deux jours sur mon projet de plus de 3000 cours. Fonctionne comme un charme. Merci d'avoir partagé.
Raja Anbazhagan
5

Impossible d'importer tous en même temps, mais peut utiliser la combinaison suivante:

ALT+ Enter-> Afficher les actions d'intention et les correctifs rapides.

F2 -> Erreur en surbrillance suivante.

Lyncean Patel
la source
3

Une autre option consiste à demander à IDEA de se comporter comme une éclipse avec des touches de raccourci éclipse. Vous pouvez utiliser tous les raccourcis Eclipse en activant cette option.

Voici les étapes:

1- Avec IDEA ouvert, appuyez sur Ctrl + ` . Les options suivantes s'afficheront.

entrez la description de l'image ici

2- Sélectionnez Keymap. Vous verrez un autre pop-up. Sélectionnez Eclipse ici.

entrez la description de l'image ici

3- Appuyez maintenant surCtrl + Shift + O . Vous avez terminé!

Dexter
la source
J'ai essayé. Cela ne fait pas que "organiser les importations" se comporte comme Eclipse.
Florian F
0

Utilisez control+ option+ Lpour importer automatiquement le package et supprimer automatiquement les packages inutilisés sur Mac

NarendraR
la source