IntelliJ Organizează importurile (Programare, Java, Intellij Idea)

Steve Kuo a intrebat.
a intrebat.

Are IntelliJ o funcție de organizare a importurilor similară cu cea din Eclipse?Am un fișier Java cu mai multe clase cărora le lipsesc importurile. Exemplu:

package com.test;
public class Foo {
    public Map map;
    public JTable table;
}

În Eclipse aș putea folosi Organize Imports și acesta ar importa automat atât java.util.Map și javax.swing.JTable. În IntelliJ trebuie să mă duc individual la fiecare clasă, să o selectez, apoi să apăs Alt-Enter. Există o funcție Optimize Imports, dar tot ce pare să facă este să sorteze și să extindă clasa existente importuri.

Folosesc IntelliJ 10.5.

Comentarii

    19

  • Încă nu am găsit o alternativă la Ctrl+Shift+O de la eclipse –  > Por appbootup.
  • 16

  • Ați încercat Ctrl + Alt + O? Acesta adaugă automat orice importuri unice și vă solicită să alegeți între importuri similare apăsând Alt + Enter. Pentru informarea dvs., folosesc IntelliJ 12. –  > Por divesh premdeep.
  • Cu excepția faptului că Ctrl + Alt + O nu va returna un import asupra căruia nu se poate decide… De exemplu, dacă există mai multe importuri din care se poate alege (pe care încerc să-mi dau seama cum să le aleg, deoarece nu am pe tastatură simbolul de caractere pe care îl sugerează), atunci va spune: „Import nefolosit, nu a fost găsit”. –  > Por Azurespot.
14 răspunsuri
Ryan Stewart

Ctrl + Alt O (Cod → Optimizarea importurilor…) este ceea ce căutați, atât pe Windows/Linux, cât și pe macOS keymaps.

Scrie „Optimize”, dar, dacă este configurat în acest sens, va face și acest lucru:

  • va organiza importurile existente
  • elimină importurile inutile
  • adaugă noi importuri necesare
  • să adauge din mers importuri neambigue

Puteți regla funcția auto-import la rubrica „Settings → Editor → General → Auto Import„, așa cum a fost descris de Dave.

De asemenea, puteți modifica modul în care importurile sunt ordonate automat în „Settings → Editor → Code Style → Java → Imports”.

Comentarii

    15

  • Continui să primesc downvotes tranzitorii, probabil din cauza confuziei. Mi-am actualizat răspunsul pentru a explica cum se face acest lucru face satisface întrebarea inițială. –  > Por Ryan Stewart.
  • Nu funcționează atunci când numele pachetelor dintr-o dependență s-a schimbat. Chiar și atunci când este încă neechivoc, trebuie să fac clic pe ClassName și să apăs Alt+Enter și Enter, pentru fiecare clasă afectată… –  > Por Superole.
  • Pe Mac este CTRL + ALT + O, de asemenea (cel puțin în Android Studio 1.0) –  > Por jlapoutre.
  • Mi se pare destul de stupid faptul că opțiunea „add unambiguous imports on the fly” nu este bifată în mod implicit. Cine preferă să facă asta singur, clasă cu clasă? –  > Por toni07.
  • Ar trebui să fie Settings → Editor → General → Auto Import? –  > Por Steve Pitchers.
Dave Newton

Sub "Settings -> Editor -> General -> Auto Import" există mai multe opțiuni privind importurile automate. Numai importurile neechivoce pot fi adăugate automat; aceasta este una dintre opțiuni.

Comentarii

  • Nu există suficiente voturi pentru acest răspuns. Da, răspunsul lui @ryan-stewart răspunde pe deplin la întrebarea lui OP, dar acest răspuns oferă soluția la întrebarea pe care OP nu a pus-o: cum rezolv această problemă pentru totdeauna, nu doar cum o rezolv de data aceasta. –  > Por Jonathan Landrum.
  • Este acum Setting > Editor -> General > Auto Import –  > Por Lucky.
  • Am reparat asta adăugând verificarea pe classes –  > Por Andrea Bergonzo.
  • nu funcționează la nivel de pachet/folder/proiect, nu-i așa? Am făcut un ‘ctrl + alt + o’ pe proiect, src, java și am făcut mvn clean test … tot am primit ‘symbol not found’ pentru refactorizarea recentă. –  > Por old-monk.
  • @old-monk Funcționează cu ceea ce știe editorul; este mai probabil ca ceva din refactorizare să fie stricat, dar este imposibil de spus. –  > Por Dave Newton.
Rohit Mandiwal

Simplu & soluția scurtă a funcționat pentru mine.

Mergeți la File -> Settings -> Editor -> Auto Import -> Java (panoul din stânga) și efectuați următoarele lucruri: Selectați caseta de selectare pentru „Add unambigious imports on the fly” și „Optimize imports on the fly

Consultați acest lucru.

Comentarii

  • nu funcționează la nivel de pachet/folder/proiect, nu-i așa? Am făcut un ‘ctrl + alt + o’ pe proiect, src, java și am făcut mvn clean test … tot am primit ‘symbol not found’ pentru refactorizarea recentă. –  > Por old-monk.
t0r0X

În plus față de Optimize Imports și Auto Import, care au fost semnalate de @dave-newton și @ryan-stewart în răspunsurile anterioare, mergeți la:

  • IDEA <= 13: File menu > Settings > Code Style > Java > Imports
  • IDEA >= 14: File menu > Settings > Editor > Code Style > Java > Imports (mulțumiri lui @mathias-bader pentru indiciu!)

Acolo puteți regla fin gruparea și ordinea sau importurile, „Class count to use import with '*'„, etc.

Notă:
din IDEA 13 puteți configura setările implicite ale proiectului din „pagina de start” IDEA: Configure > Project defaults > Settings > .... Apoi, fiecare proiect nou va avea aceste setări implicite:

Comentarii

  • Începând cu IntelliJ IDEA 14, acest lucru se găsește la rubrica Settings > Editor > Code Style > Java > Imports –  > Por Mathias Bader.
  • @mathias-bader mulțumim pentru că ați semnalat schimbarea paginilor de „setări”, –  > Por t0r0X.
  • Felicitări pentru capturile de ecran! Îmi place. O imagine face cât 1.000 de cuvinte! –  > Por atom88.
Steve Kuo

Iulie 2015 – Am ajuns la concluzia că IntelliJ nu acceptă rezolvarea automată a importurilor cu o singură funcție. „Organizarea importurilor” elimină pur și simplu importurile nefolosite, nu rezolvă tipurile neimportate. Control-Space rezolvă un singur tip neimportat. Nu există o singură acțiune care să rezolve importurile tuturor tipurilor.

Comentarii

  • Aceasta a fost experiența mea. Frustrant. –  > Por ayahuasca.
  • Acest lucru m-a derutat și pe mine. Vedeți soluția lui @rohit mai jos. File -> Settings -> Editor -> General -> Auto Import -> Java și bifați toate cele trei opțiuni pe care le-a evidențiat. Acest lucru a funcționat pentru mine. –  > Por Carl Rossman.
  • Ciudat că acesta este răspunsul acceptat, deoarece este extrem de inexact. See stackoverflow.com/a/8609200/839646. –  > Por Ryan Stewart.
  • @RyanStewart nu rezolvă importurile ambigue în același mod în care o face Eclipse. Eclipse va solicita atunci când este ambiguă, IntelliJ o ignoră pur și simplu. –  > Por Steve Kuo.
Khachatur Stepanyan

navigați la fișier în care doriți să organizați importurile sau pur și simplu faceți clic pe întregul pachet sau chiar faceți clic pe proiect apoi apăsați CTRL + ALT + O

Comentarii

  • Acest răspuns există deja. Vă rugăm să accesați ar putea considerați posibilitatea de a adăuga informațiile suplimentare („puteți face clic pe întregul pachet sau chiar pe proiect, apoi apăsați CTRL + ALT + O”) ca un comentariu la acest răspuns –  > Por Zach Lysobey.
Joe

În IntelliJ 14, calea către setările pentru Auto Import s-a schimbat. Calea este

IntelliJ IDEA->Preferences->Editor->General->Auto Import

apoi urmați instrucțiunile de mai sus, făcând clic pe Add unambiguous imports on the fly (Adăugați importuri neambigue din mers)

Nu-mi pot imagina de ce nu ar fi setat în mod implicit.

Tiago Gaspar

Comenzi rapide pentru Mac: (ctrl + opt + o)

Comentarii

  • Nu, Its control + option + o –  > Por Deividi Cavarzan.
  • De fapt, acest răspuns este aceleași taste ca și cel mai votat la această întrebare. –  > Por Deividi Cavarzan.
Baig

Pur și simplu mutați mouse-ul peste vizualizarea lipsă și apăsați tastele de pe windows ALT + ENTER

Ali.Mojtehedy

ALT+ENTER a fost departe de obiceiul eclipsei ,în IDEA pentru mine mouse over nu a funcționat , așa că în setting>IDESetting>Keymap>Show intention actions and quick-fixes l-am schimbat cu click stânga mouse-ului , nu suporta mouse over! dar click stânga mouse-ului era OK și cel mai apropiat de intenția mea.

Alexandre DuBreuil

Acest plugin va face automat acțiunea „organizează importul” la salvarea fișierului: https://github.com/dubreuia/intellij-plugin-save-actions.

Pentru a instala: „File > Settings > Plugins > Browse repositories… > Search ‘Save Actions’ > Category ‘Code tools'”. Apoi activați acțiunea de salvare „organize import”.

Comentarii

  • Judecarea unui instrument pe baza unei singure caracteristici (lipsă) ar putea să nu fie considerată o judecată atentă. În cazul în care pluginul nu funcționează, nu ezitați să completați un bug acolo: github.com/dubreuia/intellij-plugin-save-actions/issues. –  > Por Alexandre DuBreuil.
  • Aveți dreptate, nu este o judecată atentă în situații normale. Este – totuși – o frustrare ventilată pe o caracteristică de bază care lipsește în mod uimitor dintr-un instrument suprem. Am petrecut 2 ore în agonie încercând să fac să funcționeze această caracteristică simplă și esențială, fără succes. Și ceea ce a fost și mai rău, în loc să fie o caracteristică încorporată în mod implicit (așa cum o face elegant Eclipse), a fost nevoie să se scrie un plugin pentru a realiza acest lucru! Este ca și cum ai construi un avion de ultimă generație și cel mai complex jumbo jet, dar fără aer condiționat, în schimb, fiecare pasager primește un ventilator de hârtie! Mi-a luat 1 secundă în Eclipse. –  > Por DhafirNz.
  • De fapt, utilizarea acestui plug-in a evidențiat o problemă și un punct slab în IntelliJ. A trebuit să dezactivez acest plug-in pentru că deturnează IntelliJ la fiecare salvare automată, făcându-l inutilizabil și lent. Acest lucru se datorează faptului că încearcă să facă toate acțiunile de salvare de fiecare dată când tastez ceva. Dacă salvarea automată poate fi dezactivată cumva, atunci acest plug-in va fi într-adevăr foarte util. –  > Por DhafirNz.
Martin Vysny

În cele din urmă am creat o soluție de rezolvare a acestei probleme frustrante. Nu sunt complet mulțumit de această soluție, dar este mai bună decât nimic.

Practic, după ce ați lipit codul sursă și importurile neambigue sunt fixate, trebuie doar să apăsați F2 pentru a evidenția următoarea eroare de compilare. Dacă eroarea curentă este o eroare de lipsă de import, apăsați Alt+Enter, apoi Enter pentru a selecta Import opțiune, apoi alegeți importul corect. Apoi, apăsați F2 din nou.

Manga Rao

Mergeți la Help -> Găsiți Action (Short Cut pentru aceasta este Cntl + Shift + A) și tastați Optimize imports (Short Cut pentru aceasta este Cntl + Alt + O)

Zorayr

Dacă vă lipsește doar un singur import (numele clasei are o subliniere roșie), faceți clic și treceți cu mouse-ul peste el și va apărea o declarație de import sugerată în albastru. Dacă apăsați pe, Alt + Enter în acest moment, importul va fi inclus în fișier, iar sublinierea roșie ar trebui să dispară.

Comentarii

  • Sunt destul de sigur că aceasta este o caracteristică multi-platformă –  > Por Zach Lysobey.