Gibt es eine Möglichkeit (oder Verknüpfung), die Klassen in IntelliJ IDEA wie in Eclipse automatisch zu importieren?

121

Während Sie in Eclipse in Java codieren und Ctrl+ Shift+ drücken, Oimportieren Sie automatisch alle Klassen automatisch.
In NetBeans erfolgt dies mit Ctrl+ Shift+ I.

Gibt es eine Möglichkeit, dies in IntelliJ IDEA zu tun?

Ich habe nach einer entsprechenden Verknüpfung in Google, StackOverflow, IntelliJ IDEA-Konfiguration und auf der offiziellen IntelliJ-Website nach Tastaturkürzeln gesucht, die Sie nicht verpassen dürfen

bywronski
quelle
4
Wenn Sie nach einer Befehls- / Tastaturkürzel suchen, geben Sie Strg-Umschalt-A (oder Cmd-Umschalt-A auf dem Mac) ein und suchen Sie nach dem Befehl. Wenn Sie hier beispielsweise "Importe" eingeben, werden der Befehl "Importe optimieren" und die Tastenkombination angezeigt.
JB Nizet
2
Die "Importe optimieren" funktioniert nicht, fügen Sie die Klassen hinzu
bywronski
Der automatische Import für Klassen funktioniert, wenn Sie ihn unter "Einstellungen> Editor> Allgemein> Automatischer Import" aktivieren.
Andrea Bergonzo
Dies ist wirklich das größte Versagen von Intellij. es ist nervtötend. Konflikte und Zusammenführungen bei Importen zu bekommen ist dumm, aber Intellij kann Ihnen nicht leicht helfen, es zu lösen
Bharal

Antworten:

103

IntelliJ IDEA verfügt nicht über eine Aktion zum Hinzufügen von Importen. Vielmehr hat es die Fähigkeit, wie Sie es tun. Wenn Sie unter Einstellungen> Editor> Allgemein> Autoimport die Option "Eindeutige Importe im laufenden Betrieb hinzufügen " aktivieren , fügt IntelliJ IDEA diese während der Eingabe hinzu, ohne dass Verknüpfungen erforderlich sind. Sie können auch Klassen und Pakete hinzufügen, die vom automatischen Import ausgeschlossen werden sollen, um eine häufig verwendete Klasse zu erstellen, die eindeutig mit anderen gleichnamigen Klassen kollidiert.

Geben Sie für mehrdeutige Klassen (oder möchten Sie die Option "Eindeutige Importe im laufenden Betrieb hinzufügen" deaktiviert) einfach den Namen der Klasse ein (nur der Name ist in Ordnung, Sie müssen sich nicht vollständig qualifizieren). Verwenden Sie die Code-Vervollständigung und wählen Sie die gewünschte Klasse aus:

Geben Sie hier die Bildbeschreibung ein

Beachten Sie die vollständig qualifizierten Namen rechts. Wenn ich die gewünschte auswähle und die Eingabetaste drücke, fügt IDEA automatisch die Importanweisung hinzu. Dies funktioniert genauso, wenn ich den Namen eines Konstruktors eingegeben habe. Bei statischen Methoden können Sie sogar einfach die gewünschte Methode eingeben. Im folgenden Screenshot wird noch keine "StringUtils" -Klasse importiert.

Geben Sie hier die Bildbeschreibung ein

Alternativ können Sie den Klassennamen eingeben und dann Alt+ Enteroder + drücken, Enterum "Absichtsaktionen und Schnellkorrekturen anzeigen" anzuzeigen, und dann die Importoption auswählen.

Obwohl ich es noch nie benutzt habe, denke ich, dass das Eclipse Code Formatter- Plug-In von Drittanbietern genau das tut, was Sie wollen. Als Feature wird "Emuliert die Optimierung der Eclipse-Importe" aufgeführt. Weitere Informationen finden Sie in den Anweisungen . Aber ich vermute, dass Sie feststellen werden, dass die integrierten IDEA-Funktionen gut funktionieren, sobald Sie sich an ihr Paradigma gewöhnt haben. Im Allgemeinen verwendet IDEA ein Konzept "Entwickeln durch Absichten". Anstatt meine Entwicklungsarbeit zu unterbrechen, um eine Importanweisung hinzuzufügen, gebe ich einfach die gewünschte Klasse ein (meine Absicht) und IDEA fügt automatisch die Importanweisung für die Klasse für mich hinzu.

Javaru
quelle
7
Auf diese Weise wird viel mehr Arbeit geleistet, wenn Sie alte Dateien bearbeiten.
Adam
Das funktioniert bei mir nicht. Wenn ich nach Auswahl einer Klasse, die in der Autovervollständigungsliste angezeigt wird, die Eingabetaste drücke, importiert IntelliJ sie nicht. Stattdessen wird der vollständig qualifizierte Name der Klasse geschrieben. Das ist sehr nervig und nutzlos. Wissen Sie, wie Sie das beheben können?
Rodrigo
^ Der Grund für dieses Verhalten ist, dass sich die Klasse, die ich importieren wollte, nicht im Erstellungspfad befand. Nach dem Hinzufügen wurde die Klasse durch korrektes Drücken der Eingabetaste importiert.
Rodrigo
3
Ich war zu dieser Frage gekommen, in der Hoffnung, eine solche Tastenkombination für IntelliJ zu finden. Das Problem ist, dass IntelliJ die Namespace-Importe automatisch entfernt, wenn ich einen großen Codeabschnitt mit Klassen kommentiere. Wenn ich jetzt den Code auskommentiere, importiert IntelliJ die Namespaces nicht erneut, und es wird zu einem ziemlichen Problem, für jeden von ihnen ALT + Enter auszuführen. Irgendeine Lösung?
Rahul Saini
Ich stimme @RahulSaini darin zu. Es gibt keinen Grund, zwei separate Schlüsselkarten für eine einzelne Aktivität zu haben. Ich möchte und sollte nicht mehrere Dinge tun müssen, um eine einzelne Aktion auszuführen. Ich würde sagen, dass Intellij an dieser Stelle nur kriegerisch ist und keinen wirklichen Grund hat, die Importe nicht zu "organisieren", anstatt die Importe zu "optimieren". Ich möchte diese Antwort wirklich ablehnen, obwohl sie technisch korrekt ist.
Peekay
73

Nicht alle auf einmal. Aber du kannst drücken

Alt + Enter

Die Leute nehmen an, dass es nur funktioniert, wenn Sie sich an einem bestimmten Gegenstand befinden. Aber es funktioniert tatsächlich für "nächster fehlender Typ". Wenn Sie also weiterhin Alt+ drücken Enter, wird IDEA nacheinander behoben, bis alle behoben sind.

Teknopaul
quelle
1
Ich gehe davon aus, dass Sie sich auf die Tastaturtastensymbole beziehen. Diese können mit dem kbdTag<kbd>Alt</kbd> + <kbd>Enter</kbd>
GuiSim
1
Gehen Sie zu der Klasse, die nicht gefunden werden kann, und drücken Sie ⌥ + Eingabetaste. Ich bin froh, dass ich nach unten gescrollt habe.
Ajak6
1
Gibt es eine Möglichkeit, Alt+Entereine fingerfreundlichere Kombination zuzuordnen ? Ich konnte es nicht über das IntelliJ IDEA > Preferences > KeymapMenü herausfinden .
Laylaylom
1
Ich fand die Eclipse-Methode zum Fehlen des Hinzufügens von Importanweisungen einfacher als die von IDEA. Ich bin immer verwirrt, wo ich den Mauszeiger platzieren soll, bevor ich Alt + Enter
vikramvi
Alt + Enter in Kombination mit F2 (Next Highlighted Error) ist normalerweise auch für (zu) große Klassen recht schnell.
Osundblad
10

Scheint, als würde IntelliJ IDEA verpasste Klassen automatisch importieren, und Sie können sie durch Drücken von Alt+ Entermanuell importieren .

Wuaner
quelle
8

Ich denke, die beste Lösung, obwohl nicht genau die gleiche wie bei Eclipse / Netbeans, besteht darin, die Einstellungen für "Importe optimieren" zu ändern.

Unter Preferences > Editor > General > Auto Import

einstellen Add unambiguous imports on the fly

Edit: Die Verwendung dieser Methode, wenn es sind mehrdeutig Importe, wird IntelliJ lassen Sie wissen, und Sie können dann mit Alt+ EnterMethode in der skizzierten Antwort von Wuaner

Ich finde, dass fast immer der am besten geeignete Import ganz oben auf der Liste steht.

comfytoday
quelle
1
@ Raja Ich bin mir auch nicht sicher warum. Ich weiß, als ich meinen Mitarbeitern sagte, dass sie diese Methode nicht anwenden wollten ... mysteriös.
Comfytoday
Die Anweisungen sind ziemlich klar. Es werden nur die unambiguousKlassen automatisch importiert . Und ich benutze es seit zwei Tagen für mein Projekt mit mehr als 3000 Klassen. Klappt wunderbar. Danke für das Teilen.
Raja Anbazhagan
5

Kann nicht alle auf einmal importieren, kann aber folgende Kombination verwenden:

ALT+ Enter-> Absichtsaktionen und Schnellkorrekturen anzeigen.

F2 -> Nächster markierter Fehler.

Lyncean Patel
quelle
3

Eine andere Möglichkeit besteht darin, IDEA zu bitten, sich mit Eclipse-Tastenkombinationen wie Eclipse zu verhalten. Sie können alle Eclipse-Verknüpfungen verwenden, indem Sie diese Option aktivieren.

Hier sind die Schritte:

1- Drücken Sie bei geöffneter IDEA Strg + ` . Die folgenden Optionen werden angezeigt.

Geben Sie hier die Bildbeschreibung ein

2- Wählen Sie Keymap. Sie sehen ein weiteres Popup. Wählen Sie dort Eclipse.

Geben Sie hier die Bildbeschreibung ein

3- Drücken Sie jetztCtrl + Shift + O . Du bist fertig!

Dexter
quelle
Ich habe es versucht. "Importe organisieren" verhält sich nicht wie Eclipse.
Florian F
0

Verwenden Sie control+ option+ L, um das Paket automatisch zu importieren und nicht verwendete Pakete auf dem Mac automatisch zu entfernen

NarendraR
quelle