IntelliJ Mengatur Impor


254

Apakah IntelliJ memiliki fitur Impor Impor serupa dengan yang ada di Eclipse? Apa yang saya miliki adalah file Java dengan beberapa kelas yang hilang impor mereka. Contoh:

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

Di Eclipse saya bisa menggunakan Impor Mengatur dan itu akan secara otomatis mengimpor keduanya java.util.Mapdan javax.swing.JTable. Di IntelliJ saya harus secara individual pergi ke setiap kelas, pilih, lalu tekan Alt-Enter. Ada fitur Mengoptimalkan Impor tetapi yang tampaknya dilakukan hanyalah mengurutkan dan memperluas impor yang ada .

Saya menggunakan IntelliJ 10.5.


17
Saya masih tidak dapat menemukan alternatif untuk Ctrl + Shift + O
appbootup eclipse

16
Sudahkah Anda mencoba Ctrl + Alt + O? Secara otomatis menambahkan impor unik dan meminta Anda untuk memilih antara impor serupa dengan menekan Alt + Enter. FYI, saya menggunakan IntelliJ 12.
divesh premdeep

6
Kecuali Ctrl + Alt + O tidak akan mengembalikan impor yang tidak dapat diputuskan ... Misalnya, jika ada beberapa impor untuk dipilih (yang saya coba cari tahu bagaimana memilihnya, karena saya tidak memiliki simbol karakter yang mereka sarankan di keyboard saya), maka akan tertulis, "Impor yang tidak digunakan tidak ditemukan".
Azurespot

Jawaban:


356

Ctrl+ Alt+ O( Code → Optimize Imports ... ) adalah apa yang Anda cari, baik pada Windows / Linux dan keymaps macOS.

Itu mengatakan "Optimalkan", tetapi, jika dikonfigurasi untuk melakukannya, itu juga akan:

  • mengatur impor yang ada
  • hapus impor yang tidak dibutuhkan
  • tambahkan impor wajib baru
  • tambahkan impor yang jelas dengan cepat

Anda dapat menyetel pengaturan impor otomatis di bawah " Pengaturan → Editor → Umum → Impor Otomatis " seperti yang dijelaskan oleh Dave .

Anda juga dapat mengubah cara impor dipesan secara otomatis di bawah " Pengaturan → Editor → Gaya Kode → Java → Impor "


14
Saya terus mendapatkan downory sementara, mungkin karena kebingungan. Saya telah memperbarui jawaban saya untuk menjelaskan bagaimana ini tidak memuaskan pertanyaan awal.
Ryan Stewart

4
Itu tidak berfungsi ketika nama paket di dependensi telah berubah. Bahkan ketika masih tidak ambigu saya harus mengklik hit ClassName Alt + Enter dan Enter, untuk setiap kelas yang terpengaruh ...
Superole

7
Di Mac, CTRL + ALT + O juga (setidaknya di Android Studio 1.0)
jlapoutre

9
Saya merasa sangat bodoh bahwa opsi "tambahkan impor yang jelas" dengan cepat tidak dicentang secara default. Siapa yang lebih suka membuatnya sendiri, kelas demi kelas?
toni07

3
Seharusnya Settings → Editor → General → Auto Import?
Steve Pitchers

100

Di bawah "Settings -> Editor -> General -> Auto Import"ada beberapa opsi mengenai impor otomatis. Hanya impor yang tidak ambigu yang dapat ditambahkan secara otomatis; ini adalah salah satu opsi.


Tidak cukup suara untuk jawaban ini. Ya, jawaban @ ryan-stewart sepenuhnya menjawab pertanyaan OP, tetapi jawaban ini memberikan solusi untuk pertanyaan yang OP tidak tanyakan: bagaimana cara memperbaiki ini selamanya, bukan hanya bagaimana cara memperbaikinya kali ini.
Jonathan Landrum

7
SekarangSetting > Editor -> General > Auto Import
Lucky

Saya memperbaikinya dengan menambahkan tanda centang padaclasses
Andrea Bergonzo

itu tidak berfungsi pada tingkat paket / folder / proyek, kan? Saya melakukan 'ctrl + alt + o' pada proyek, src, java dan melakukan mvn clean test ... saya masih mendapat 'simbol not found' untuk refactor baru-baru ini.
biksu tua

@ old-monk Berfungsi dengan apa yang diketahui oleh editor; lebih mungkin sesuatu dalam refactor rusak, tetapi tidak mungkin dikatakan.
Dave Newton

44

Solusi sederhana & pendek bekerja untuk saya.

Buka File-> Settings-> Editor-> Auto Import-> Java(panel kiri) dan buat hal-hal di bawah ini: Pilih kotak centang untuk " Add unambigious imports on the fly" dan " Optimize imports on the fly"

Lihat ini.

masukkan deskripsi gambar di sini


itu tidak berfungsi pada tingkat paket / folder / proyek, kan? Saya melakukan 'ctrl + alt + o' pada proyek, src, java dan melakukan mvn clean test ... saya masih mendapat 'simbol not found' untuk refactor baru-baru ini.
biksu tua

44

Selain Optimize Importsdan Auto Import, yang ditunjukkan oleh @ dave-newton dan @ ryan-stewart dalam jawaban sebelumnya, buka:

  • GAGASAN <= 13: File menu > Settings > Code Style > Java > Imports
  • IDEA> = 14: File menu > Settings > Editor > Code Style > Java > Imports(terima kasih kepada @ mathias-bader untuk petunjuknya!) Dialog pengaturan

Di sana Anda dapat mengatur pengelompokan dan memesan atau mengimpor, " Class count to use import with '*'", dll.

Catatan:
sejak IDEA 13 Anda dapat mengkonfigurasi pengaturan default proyek dari IDEA "start page": Configure > Project defaults > Settings > .... Maka setiap proyek baru akan memiliki pengaturan default itu: masukkan deskripsi gambar di sini


7
Sejak IntelliJ IDEA 14, ini dapat ditemukan di bawahSettings > Editor > Code Style > Java > Imports
Mathias Bader

@ mathias-bader terima kasih telah menunjukkan halaman "pengaturan" berubah
t0r0X

1
Kudos untuk tangkapan layar! Suka. Visual bernilai 1.000 kata!
atom88

42

Juli 2015 - Saya telah menyimpulkan bahwa IntelliJ tidak mendukung penyelesaian impor secara otomatis dengan satu fungsi. "Atur impor" hanya menghapus impor yang tidak digunakan, itu tidak menyelesaikan jenis yang tidak diimpor. Control-Space menyelesaikan satu jenis yang tidak diimportasi. Tidak ada tindakan tunggal untuk menyelesaikan impor semua jenis.


11
Ini adalah pengalaman saya. Membuat frustrasi.
ayahuasca

1
Ini juga membuat saya tersandung. Lihat solusi @ rohit di bawah ini. File -> Pengaturan -> Editor -> Umum -> Impor Otomatis -> Java dan periksa ketiga opsi yang telah disorot. Ini berhasil untuk saya.
Carl Rossman

1
Aneh bahwa ini adalah jawaban yang diterima, karena sangat tidak akurat. Lihat stackoverflow.com/a/8609200/839646 .
Ryan Stewart

1
@RyanStewart tidak menyelesaikan impor ambigu dengan cara yang sama seperti Eclipse. Eclipse akan meminta ketika ambigu, IntelliJ abaikan saja.
Steve Kuo

9

arahkan ke file di mana Anda ingin mengatur impor atau cukup klik pada seluruh paket atau bahkan klik pada proyek daripada menekan CTRL + ALT + O


1
Jawaban ini sudah ada . Anda dapat mempertimbangkan untuk menambahkan info tambahan ("Anda dapat mengklik seluruh paket atau bahkan mengklik proyek daripada menekan CTRL + ALT + O") sebagai komentar untuk jawaban itu
Zach Lysobey

9

Di IntelliJ 14, jalur ke pengaturan untuk Impor Otomatis telah berubah. Jalannya adalah

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

kemudian ikuti instruksi di atas, klik Tambah impor yang jelas

Saya tidak bisa membayangkan mengapa ini tidak diatur secara default.



2

Gerakkan mouse Anda ke tampilan yang hilang dan tekan tombol pada windows ALT + ENTER


2

ALT + ENTER jauh dari kebiasaan gerhana, di IDEA bagi saya mouse tidak berfungsi, jadi setting>IDESetting>Keymap>Show intention actions and quick-fixessaya mengubahnya menjadi klik kiri mouse, Tidak mendukung mouse! tetapi klik kiri mouse adalah OK dan terdekat dengan niat saya.


2

Saya akhirnya menciptakan solusi untuk masalah yang membuat frustrasi ini. Saya tidak sepenuhnya senang dengan solusinya, tetapi lebih baik daripada tidak sama sekali.

Pada dasarnya, setelah Anda menempelkan kode sumber dan impor yang ambigu diperbaiki, cukup tekan F2untuk menyorot kesalahan kompiler berikutnya. Jika kesalahan saat ini adalah kesalahan impor yang hilang, tekan Alt+Enter, lalu Enteruntuk memilih Importopsi, lalu pilih impor yang benar. Lalu, tekan F2lagi.


1

Plugin itu akan secara otomatis melakukan tindakan "mengatur impor" pada file save: https://github.com/dubreuia/intellij-plugin-save-actions .

Untuk menginstal: "File> Pengaturan> Plugins> Jelajahi repositori ...> Cari 'Simpan Tindakan'> Kategori 'Alat kode'". Kemudian aktifkan tindakan simpan "atur impor".


Menilai alat pada satu fitur (hilang) mungkin tidak dianggap sebagai penilaian yang bijaksana. Jika plugin tidak berfungsi, jangan ragu untuk mengisi bug di sana: github.com/dubreuia/intellij-plugin-save-actions/issues .
Alexandre DuBreuil

5
Anda benar, itu bukan penilaian yang bijaksana dalam situasi normal. Namun - ini adalah frustrasi yang meluap-luap pada fitur dasar yang memukau hilang dari alat utama. Saya menghabiskan 2 jam dalam penderitaan berusaha mendapatkan fitur yang sederhana dan penting ini untuk bekerja, tanpa hasil. Dan apa yang membuatnya lebih buruk, daripada menjadi fitur bawaan secara default (seperti bagaimana Eclipse melakukannya dengan elegan) sebuah plugin benar-benar perlu ditulis untuk mencapainya! Ini seperti membangun keadaan seni dan jet jumbo paling rumit tetapi tanpa AC, sebaliknya, setiap penumpang diberikan kipas kertas! Butuh waktu 1 detik di Eclipse.
DhafirNz

1
Sebenarnya, menggunakan plug-in ini menyoroti masalah dan kelemahan di IntelliJ. Saya harus menonaktifkan plug-in ini karena membajak IntelliJ di setiap penyimpanan otomatis, menjadikannya tidak dapat digunakan dan lambat. Ini karena ia mencoba melakukan semua tindakan simpan setiap saya mengetik sesuatu. Jika penyimpanan otomatis dapat dimatikan, maka plug-in ini akan sangat berguna.
DhafirNz

0

Jika Anda kehilangan hanya satu impor (nama kelas memiliki garis bawah merah), klik dan arahkan mouse di atasnya, dan pernyataan impor yang disarankan berwarna biru akan muncul. Jika Anda menekan, Alt + Enter pada titik ini, impor akan dimasukkan dalam file dan garis bawah merah akan hilang.


Cukup yakin ini adalah fitur multi-platform
Zach Lysobey

0

Bantuan Goto -> Cari Tindakan (Pintasan untuk ini adalah Cntl + Shift + A) dan ketik Optimalkan impor (Pintasan untuk ini adalah Cntl + Alt + O)

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.