Adakah cara (atau pintasan) untuk mengimpor kelas secara otomatis di IntelliJ IDEA seperti di Eclipse?

123

Di Eclipse, saat membuat kode di Java dan tekan Ctrl+ Shift+ Oimpor otomatis semua Kelas secara otomatis.
Di NetBeans, ini dilakukan dengan Ctrl+ Shift+ I.

Apakah ada cara untuk melakukan ini di IntelliJ IDEA?

Saya mencari pintasan yang setara di google, StackOverflow, konfigurasi IntelliJ IDEA dan di situs web resmi IntelliJ Pintasan Keyboard yang Tidak Dapat Anda Lewatkan

bywronski
sumber
4
Saat mencari pintasan perintah / keyboard, ketik Ctrl-shift-A (atau Cmd-shift-A di Mac), dan cari perintahnya. Misalnya di sini, mengetik "impor" akan menunjukkan kepada Anda perintah "Optimalkan impor", dan pintasan keyboardnya.
JB Nizet
2
"Optimalkan impor" tidak bekerja menambahkan Kelas
bywronski
Impor otomatis untuk kelas berfungsi jika Anda mengaktifkannya pada "Pengaturan> Editor> Umum> Impor Otomatis".
Andrea Bergonzo
ini benar-benar kegagalan terbesar dari intellij. itu menyakitkan. mendapatkan konflik dan penggabungan pada impor itu bodoh, tetapi intellij tidak dapat dengan mudah membantu Anda menyelesaikannya
bharal

Jawaban:

103

IntelliJ IDEA tidak memiliki tindakan untuk menambahkan impor. Melainkan memiliki kemampuan untuk melakukan seperti yang Anda ketik. Jika Anda mengaktifkan "Tambahkan impor yang tidak ambigu dengan cepat" di Pengaturan> Editor> Umum> Impor Otomatis , IntelliJ IDEA akan menambahkannya saat Anda mengetik tanpa memerlukan pintasan apa pun. Anda juga dapat menambahkan kelas dan paket untuk dikecualikan dari pengimporan otomatis untuk membuat kelas yang sering Anda gunakan, yang bentrok dengan kelas lain dengan nama yang sama, tidak ambigu.

Untuk kelas yang ambigu (atau Anda lebih suka menonaktifkan opsi "Tambahkan impor yang tidak ambigu dengan cepat"), cukup ketikkan nama kelas (namanya saja OK, tidak perlu sepenuhnya memenuhi syarat). Gunakan penyelesaian kode dan pilih kelas tertentu yang Anda inginkan:

masukkan deskripsi gambar di sini

Perhatikan nama yang sepenuhnya memenuhi syarat di sebelah kanan. Ketika saya memilih yang saya inginkan dan menekan enter, IDEA akan secara otomatis menambahkan pernyataan impor. Ini berfungsi sama jika saya mengetik nama konstruktor. Untuk metode statis, Anda bahkan dapat terus mengetik metode yang Anda inginkan. Di screenshot berikut, belum ada kelas "StringUtils" yang diimpor.

masukkan deskripsi gambar di sini

Atau, ketikkan nama kelas lalu tekan Alt+ Enteratau + Enteruntuk "Tampilkan tindakan niat dan perbaikan cepat", lalu pilih opsi impor.

Meskipun saya belum pernah menggunakannya, saya pikir itu Eclipse Kode Formatter pihak ketiga plug-in akan melakukan apa yang Anda inginkan. Ini mencantumkan "mengemulasi pengoptimalan impor Eclipse" sebagai fitur. Lihat instruksinya untuk informasi lebih lanjut. Tetapi pada akhirnya, saya curiga Anda akan menemukan fitur IDEA bawaan berfungsi dengan baik setelah Anda terbiasa dengan paradigma mereka. Secara umum, IDEA menggunakan konsep "dikembangkan dengan niat". Jadi daripada mengganggu pekerjaan pengembangan saya untuk menambahkan pernyataan impor, saya cukup mengetik kelas yang saya inginkan (niat saya) dan IDEA secara otomatis menambahkan pernyataan impor untuk kelas tersebut untuk saya.

Javaru
sumber
7
Lebih banyak pekerjaan seperti ini saat Anda mengedit file lama.
Adam
Ini tidak berhasil untukku. Ketika saya menekan Enter setelah memilih kelas yang muncul di daftar pelengkapan otomatis, IntelliJ tidak mengimpornya. Sebaliknya, itu menulis nama kelas yang sepenuhnya memenuhi syarat. Ini sangat mengganggu dan tidak berguna. Apakah Anda tahu cara memperbaikinya?
Rodrigo
^ alasan perilaku ini adalah bahwa kelas yang saya coba impor tidak berada dalam jalur pembuatan. Setelah ditambahkan, menekan Enter dengan benar mengimpor kelas.
Rodrigo
3
Saya telah sampai pada pertanyaan ini dengan harapan menemukan jalan pintas kunci seperti itu untuk IntelliJ. Masalahnya adalah jika saya mengomentari sebagian besar kode yang memiliki kelas, IntelliJ secara otomatis menghapus impor namespace. Sekarang Jika saya pergi dan menghapus tanda komentar pada kode, IntelliJ tidak mengimpor ulang namespaces yang sama dan cukup memusingkan untuk terus melakukan ALT + Enter untuk masing-masingnya. Ada solusi?
Rahul Saini
Saya setuju dengan @RahulSaini tentang ini. Tidak ada alasan untuk memiliki dua peta utama yang terpisah untuk satu aktivitas. Saya tidak ingin dan tidak harus melakukan banyak hal untuk menyelesaikan satu tindakan. Saya akan mengatakan bahwa pada titik ini intellij hanya bersikap agresif tentang hal itu dan tidak memiliki alasan yang nyata untuk tidak "mengatur" impor daripada "mengoptimalkan" impor. Saya benar-benar ingin menolak jawaban ini meskipun secara teknis benar.
intip
73

Tidak sekaligus. Tapi Anda bisa menekan

Alt + Enter

Orang menganggap itu hanya berfungsi ketika Anda berada di item tertentu. Tapi ini benar-benar berfungsi untuk "tipe yang hilang berikutnya". Jadi jika Anda terus menekan Alt+ Enter, IDEA memperbaiki satu demi satu sampai semuanya diperbaiki.

teknopaul
sumber
1
Saya berasumsi bahwa Anda mengacu pada simbol tombol keyboard. Ini dapat ditambahkan menggunakan kbdtag<kbd>Alt</kbd> + <kbd>Enter</kbd>
GuiSim
1
Masuk ke kelas yang tidak dapat ditemukannya dan tekan ⌥ + Enter. Senang saya menggulir ke bawah.
Ajak6
1
Adakah cara untuk memetakan kembali Alt+Enterkombinasi yang lebih ramah jari? Saya tidak bisa mengetahuinya melalui IntelliJ IDEA > Preferences > Keymapmenu.
laylaylom
1
Saya menemukan cara Eclipse untuk menghilangkan penambahan pernyataan impor lebih mudah daripada IDEA. Saya selalu bingung di mana harus meletakkan kursor mouse sebelum mengetik Alt + Enter
vikramvi
Alt + Enter dalam kombinasi dengan F2 (Next Highlighted Error) biasanya cukup cepat bahkan untuk Kelas (terlalu) besar.
osundblad
10

Sepertinya IntelliJ IDEA akan mengimpor kelas yang terlewat secara otomatis, dan Anda dapat mengimpornya dengan menekan Alt+ Entersecara manual.

Wuaner
sumber
8

Menurut saya solusi terbaik, meskipun tidak persis sama dengan Eclipse / Netbeans, adalah mengubah pengaturan 'Optimalkan Impor'.

Dibawah Preferences > Editor > General > Auto Import

Set Add unambiguous imports on the fly

Edit: Dengan menggunakan metode ini, ketika ada yang impor ambigu, IntelliJ akan membiarkan Anda tahu, dan Anda kemudian dapat menggunakan Alt+ Entermetode yang digariskan dalam jawaban dengan Wuaner

Saya menemukan bahwa, hampir selalu, Impor yang paling tepat ada di daftar teratas.

comfytoday
sumber
1
@Raja Saya juga tidak yakin mengapa. Saya tahu bahwa ketika saya memberi tahu rekan kerja saya, mereka memilih untuk tidak menggunakan metode ini meskipun ... misterius.
comfytoday
Instruksinya cukup jelas. Itu hanya mengimpor unambiguouskelas secara otomatis. Dan saya telah menggunakannya sejak dua hari terakhir pada proyek 3000+ kelas saya. Bekerja seperti pesona. Terima kasih telah berbagi.
Raja Anbazhagan
5

Tidak dapat mengimpor semuanya sekaligus tetapi dapat menggunakan kombinasi berikut:

ALT+ Enter-> Tunjukkan tindakan niat dan perbaikan cepat.

F2 -> Kesalahan yang disorot berikutnya.

Lyncean Patel
sumber
3

Pilihan lainnya adalah meminta IDEA untuk berperilaku seperti gerhana dengan tombol pintasan gerhana. Anda dapat menggunakan semua pintasan gerhana dengan mengaktifkan ini.

Berikut langkah-langkahnya:

1- Dengan IDEA terbuka, tekan Control + ` . Opsi berikut akan muncul.

masukkan deskripsi gambar di sini

2- Pilih Keymap. Anda akan melihat pop-up lainnya. Pilih Eclipse di sana.

masukkan deskripsi gambar di sini

3- Sekarang tekanCtrl + Shift + O . Kamu selesai!

Dexter
sumber
Saya mencoba. Itu tidak membuat "mengatur impor" berperilaku seperti Eclipse.
Florian F
0

Gunakan control+ option+ Luntuk mengimpor paket secara otomatis dan otomatis menghapus paket yang tidak digunakan di Mac

NarendraR
sumber