Jakikolwiek sposób (lub skrót), aby automatycznie zaimportować klasy w IntelliJ IDEA, jak w Eclipse?

123

W Eclipse podczas kodowania w Javie i naciśnij Ctrl+ Shift+ Oautomatycznie importuj wszystkie klasy automatycznie.
W NetBeans robi się to za pomocą Ctrl+Shift + I.

Czy można to zrobić w IntelliJ IDEA?

Przeszukałem równoważny skrót w google, StackOverflow, konfiguracji IntelliJ IDEA oraz na oficjalnej stronie IntelliJ Skróty klawiaturowe, których nie możesz przegapić

bywroński
źródło
4
Szukając polecenia / skrótu klawiaturowego, naciśnij Ctrl-shift-A (lub Cmd-shift-A na Macu) i wyszukaj polecenie. Na przykład wpisanie „importu” spowoduje wyświetlenie polecenia „Optymalizuj import” i jego skrótu klawiaturowego.
JB Nizet
2
Opcja „Optymalizuj import” nie działa, dodając klasy
bywroński
Automatyczny import klas działa, jeśli włączysz go w „Ustawienia> Edytor> Ogólne> Automatyczny import”.
Andrea Bergonzo
to naprawdę jest największa wada intellij. to ból. uzyskiwanie konfliktów i fuzji przy imporcie jest głupie, ale intellij nie może łatwo pomóc w ich rozwiązaniu
bharal

Odpowiedzi:

103

IntelliJ IDEA nie ma akcji dodawania importu. Raczej ma możliwość wykonywania takich czynności, jak pisanie. Jeśli włączysz opcję „Dodaj jednoznaczne importy w locie” w Ustawienia> Edytor> Ogólne> Automatyczny import , IntelliJ IDEA doda je podczas pisania bez konieczności używania jakichkolwiek skrótów. Możesz także dodać klasy i pakiety, które mają być wykluczone z automatycznego importowania, aby klasa, której używasz intensywnie, kolidowała z innymi klasami o tej samej nazwie, i była jednoznaczna.

W przypadku klas, które są niejednoznaczne (lub wolisz mieć wyłączoną opcję „Dodaj jednoznaczne importy w locie”), po prostu wpisz nazwę klasy (tylko nazwa jest OK, nie ma potrzeby pełnej kwalifikacji). Użyj uzupełniania kodu i wybierz konkretną klasę, którą chcesz:

wprowadź opis obrazu tutaj

Zwróć uwagę na w pełni kwalifikowane nazwy po prawej stronie. Kiedy wybiorę ten, który chcę i wcisnę Enter, IDEA automatycznie doda oświadczenie importu. Działa to tak samo, gdy wpisuję nazwę konstruktora. W przypadku metod statycznych możesz nawet po prostu kontynuować wpisywanie żądanej metody. Na poniższym zrzucie ekranu żadna klasa „StringUtils” nie została jeszcze zaimportowana.

wprowadź opis obrazu tutaj

Ewentualnie wpisz nazwę klasy, a następnie naciśnij Alt+ Enterlub +, Enteraby „Pokaż intencje i szybkie poprawki”, a następnie wybierz opcję importu.

Chociaż nigdy nie używałem go, ja myślę Eclipse Code Formatter osoba trzecia plug-in będzie robić to, co chcesz. Jako funkcję wymienia „emuluje optymalizację importu Eclipse”. Więcej informacji można znaleźć w instrukcjach . Ale w końcu podejrzewam, że wbudowane funkcje IDEA działają dobrze, gdy przyzwyczaisz się do ich paradygmatu. Generalnie IDEA stosuje koncepcję „rozwijaj z intencji”. Więc zamiast przerywać moją pracę programistyczną, aby dodać instrukcję importu, po prostu wpisuję klasę, którą chcę (mój zamiar), a IDEA automatycznie dodaje dla mnie instrukcję importu dla klasy.

Javaru
źródło
7
W ten sposób jest o wiele więcej pracy podczas edycji starych plików.
Adam
To nie działa na mnie. Kiedy naciskam Enter po wybraniu klasy, która pojawia się na liście autouzupełniania, IntelliJ jej nie importuje. Zamiast tego zapisuje w pełni kwalifikowaną nazwę klasy. To jest bardzo irytujące i bezużyteczne. Czy wiesz, jak to naprawić?
Rodrigo
^ przyczyną tego zachowania jest to, że klasa, którą próbowałem zaimportować, nie znajdowała się na ścieżce budowania. Po dodaniu naciśnięcie klawisza Enter poprawnie zaimportowało klasę.
Rodrigo
3
Doszedłem do tego pytania z nadzieją, że znajdę taki skrót klawiszowy dla IntelliJ. Problem polega na tym, że jeśli skomentuję dużą część kodu zawierającego klasy, IntelliJ automatycznie usuwa import przestrzeni nazw. Jeśli teraz odkomentuję kod, IntelliJ nie zaimportuje ponownie przestrzeni nazw dla tego samego, a wykonywanie ALT + Enter dla każdego z nich staje się sporym bólem głowy. Jakieś rozwiązanie?
Rahul Saini
Zgadzam się z @RahulSaini w tej sprawie. Nie ma powodu, aby mieć dwie oddzielne mapy klawiszy dla jednej czynności. Nie chcę i nie powinienem robić wielu rzeczy, aby wykonać jedną czynność. Powiedziałbym, że w tym momencie intellij jest po prostu wojowniczy w tej sprawie i nie ma prawdziwego powodu, by nie „organizować” importu w przeciwieństwie do „optymalizacji” importu. Naprawdę chcę odrzucać tę odpowiedź, mimo że jest technicznie poprawna.
Peekay
73

Nie wszystko na raz. Ale możesz naciskać

Alt + Enter

Ludzie zakładają, że działa tylko wtedy, gdy znajdujesz się przy konkretnej pozycji. Ale tak naprawdę działa dla „następnego brakującego typu”. Więc jeśli będziesz nadal naciskać Alt+ Enter, IDEA naprawia się jeden po drugim, aż wszystkie zostaną naprawione.

teknopaul
źródło
1
Zakładam, że masz na myśli symbole klawiszy klawiatury. Można je dodać za pomocą kbdtagu<kbd>Alt</kbd> + <kbd>Enter</kbd>
GuiSim
1
Przejdź do klasy, której nie może znaleźć, i naciśnij ⌥ + Enter. Cieszę się, że przewinęłam w dół.
Ajak6
1
Czy istnieje sposób, aby zmienić ustawienie Alt+Enterna kombinację bardziej przyjazną dla palców? Nie mogłem tego rozgryźć w IntelliJ IDEA > Preferences > Keymapmenu.
laylaylom
1
Znalazłem sposób Eclipse na brak dodawania instrukcji importu łatwiejszy niż IDEA. I zawsze się mylić gdzie umieścić kursor myszy przed wpisaniem Alt + Enter
vikramvi
Alt + Enter w połączeniu z F2 (Next Highlighted Error) jest zwykle dość szybki nawet dla (zbyt) dużych klas.
osundblad
10

Wygląda na to, że IntelliJ IDEA automatycznie zaimportuje pominięte klasy i możesz zaimportować je przez trafienie AltEnter ręcznie, + .

Wuaner
źródło
8

Myślę, że najlepszym rozwiązaniem, choć nie takim samym jak Eclipse / Netbeans, jest zmiana ustawień „Optimize Imports”.

Pod Preferences > Editor > General > Auto Import

Zestaw Add unambiguous imports on the fly

Edit: Stosując tę metodę, gdy nie import niejednoznaczne, IntelliJ pozwoli Ci wiedzieć, a może użyć Alt+ Entermetoda przedstawione w odpowiedzi przez Wuaner

Uważam, że prawie zawsze najbardziej odpowiedni Import znajduje się na górze listy.

comfytoday
źródło
1
@Raja też nie jestem pewien, dlaczego. Wiem, że kiedy powiedziałem moim współpracownikom, że zdecydowali się nie używać tej metody, chociaż… tajemnicza.
comfytoday
Instrukcje są dość jasne. Automatycznie importuje tylko unambiguousklasy. Używam go od dwóch dni w moim projekcie obejmującym ponad 3000 zajęć. Działa jak marzenie. Dzięki za udostępnienie.
Raja Anbazhagan
5

Nie można zaimportować wszystkich naraz, ale można użyć następującej kombinacji:

ALT+ Enter-> Pokaż intencje i szybkie poprawki.

F2 -> Następny podświetlony błąd.

Lyncean Patel
źródło
3

Inną opcją jest poproszenie IDEA, aby zachowywała się jak zaćmienie za pomocą klawiszy skrótu zaćmienia. Możesz używać wszystkich skrótów zaćmieniaWłączając tę .

Oto kroki:

1- Gdy IDEA jest otwarta, naciśnij Control + ` . Pojawią się następujące opcje.

wprowadź opis obrazu tutaj

2- Wybierz mapę klawiszy. Pojawi się kolejne wyskakujące okienko. Wybierz tam Eclipse.

wprowadź opis obrazu tutaj

3- Teraz naciśnijCtrl + Shift + O . Gotowe!

Dexter
źródło
Próbowałem. Nie powoduje to, że "importowanie organizacyjne" zachowuje się w sposób Eclipse.
Florian F
0

Użyj control+ option+, Laby automatycznie zaimportować pakiet i automatycznie usunąć nieużywane pakiety na komputerze Mac

NarendraR
źródło