Eclipse'deki gibi IntelliJ IDEA'daki sınıfları otomatik olarak içe aktarmanın bir yolu (veya kısayol) var mı?


123

Eclipse'de, Java ile kodlama yaparken Ctrl+ Shift+ tuşlarına basın ve Otüm Sınıfları otomatik olarak içe aktarın.
NetBeans'de bu Ctrl+ Shift+ ile yapılır I.

Bunu IntelliJ IDEA'da yapmanın bir yolu var mı?

Google, StackOverflow, IntelliJ IDEA yapılandırmasında ve resmi IntelliJ web sitesinde Kaçıramayacağınız Klavye Kısayolları'nda eşdeğer bir kısayol aradım



4
Bir komut / klavye kısayolu ararken, Ctrl-shift-A (veya Mac'te Cmd-shift-A) yazın ve komutu arayın. Örneğin burada, "içe aktarmalar" yazdığınızda "İçe aktarımları optimize et" komutu ve klavye kısayolu gösterilecektir.
JB Nizet


Sınıflar için otomatik içe aktarma, "Ayarlar> Düzenleyici> Genel> Otomatik İçe Aktarma" altında etkinleştirirseniz çalışıyor demektir.
Andrea Bergonzo

bu gerçekten zekanın en büyük başarısızlığıdır. bu bir acı. ithalatta çatışmalar ve birleşmeler almak aptalca, ancak intellij sorunu çözmenize kolayca yardımcı olamaz
bharal

Yanıtlar:


103

IntelliJ IDEA'nın içe aktarım eklemek için bir eylemi yoktur. Aksine, sizin yazdığınız gibi yapma yeteneğine sahiptir. Ayarlar> Düzenleyici> Genel> Otomatik İçe Aktarma'da "Anında net içe aktarmalar ekle" seçeneğini etkinleştirirseniz , IntelliJ IDEA herhangi bir kısayola gerek kalmadan bunları yazarken ekleyecektir. Ayrıca, yoğun şekilde kullandığınız bir sınıfı, aynı ada sahip diğer sınıflarla çakışan ve belirsiz hale getirmek için otomatik içe aktarmanın dışında bırakılacak sınıflar ve paketler de ekleyebilirsiniz.

Belirsiz sınıflar için (veya "Anında net içe aktarmalar ekle" seçeneğinin kapalı olmasını tercih ediyorsanız), sınıfın adını yazmanız yeterlidir (sadece ad OK, tam olarak nitelendirmeye gerek yoktur). Kod tamamlamayı kullanın ve istediğiniz belirli sınıfı seçin:

görüntü açıklamasını buraya girin

Sağdaki tam nitelikli isimlere dikkat edin. İstediğimi seçip enter tuşuna bastığımda IDEA otomatik olarak import ifadesini ekleyecektir. Bu, bir kurucunun adını yazarsam da aynı şekilde çalışır. Statik yöntemler için, istediğiniz yöntemi yazmaya devam edebilirsiniz. Aşağıdaki ekran görüntüsünde, henüz "StringUtils" sınıfı içe aktarılmadı.

görüntü açıklamasını buraya girin

Alternatif olarak, sınıf adını yazın ve ardından "Niyet eylemlerini ve hızlı düzeltmeleri göster" için Alt+ Enterveya + Entertuşuna basın ve ardından içe aktarma seçeneğini seçin.

Ben hiç kullanmamış olsam da, daha düşünmek Eclipse Code Formatter üçüncü parti eklenti istediğini yapacağız. Bir özellik olarak "Eclipse'in içe aktarma optimizasyonunu taklit eder" i listeler. Daha fazla bilgi için talimatlara bakın . Ancak sonunda, paradigmalarına alıştığınızda yerleşik IDEA özelliklerinin iyi çalıştığını bulacağınızdan şüpheleniyorum. Genel olarak, IDEA "niyetle geliştirme" kavramını kullanır. Bu nedenle, bir import ifadesi eklemek için geliştirme çalışmamı kesintiye uğratmak yerine, sadece istediğim sınıfı yazıyorum (niyetim) ve IDEA otomatik olarak benim için sınıf için import ifadesini ekliyor.


7
Eski dosyaları düzenlerken bu şekilde çok daha fazla çalışma yapılır.
Adam

Bu benim için çalışmıyor. Otomatik tamamlama listesinde görünen bir sınıfı seçtikten sonra Enter tuşuna bastığımda IntelliJ onu içe aktarmıyor. Bunun yerine, sınıfın tam nitelikli adını yazar. Bu çok can sıkıcı ve faydasız. Bunu nasıl düzelteceğinizi biliyor musunuz?
Rodrigo

^ Bu davranışın nedeni, içe aktarmaya çalıştığım sınıfın oluşturma yolunda olmamasıydı. Eklendikten sonra, Enter tuşuna basmak sınıfı doğru şekilde içe aktarıyordu.
Rodrigo

3
IntelliJ için böyle bir anahtar kısayol bulmayı umarak bu soruya gelmiştim. Sorun şu ki, sınıfları olan büyük bir kod bölümünü yorumladığımda IntelliJ, ad alanı içe aktarımlarını otomatik olarak kaldırır. Şimdi kodun açıklamasını kaldırırsam, IntelliJ aynı ad alanlarını yeniden içe aktarmaz ve her biri için ALT + Enter yapmaya devam etmek oldukça baş ağrısına dönüşür. Herhangi bir çözüm?
Rahul Saini

Bu konuda @RahulSaini'ye katılıyorum. Tek bir aktivite için iki ayrı anahtar haritaya sahip olmanın bir nedeni yoktur. Tek bir eylemi gerçekleştirmek için birden fazla şey yapmak istemiyorum ve yapmak zorunda olmamalıyım. Bu noktada, intellij'in bu konuda sadece kavgacı olduğunu ve ithalatı "optimize etmek" yerine ithalatı "organize" etmemek için gerçek bir nedeni olmadığını söyleyebilirim. Teknik olarak doğru olmasına rağmen bu yanıta gerçekten olumsuz oy vermek istiyorum.
2019

73

Hepsi aynı anda değil. Ama basabilirsin

Alt + Enter

İnsanlar, yalnızca belirli bir öğede olduğunuzda çalıştığını varsayar. Ama aslında "bir sonraki eksik tip" için çalışıyor. Dolayısıyla , Alt+ düğmesine basmaya devam ederseniz Enter, IDEA hepsi düzelene kadar birbiri ardına düzeltir.


1
Klavye tuş sembollerine atıfta bulunduğunuzu varsayıyorum. Bunlar kbdetiket kullanılarak eklenebilir<kbd>Alt</kbd> + <kbd>Enter</kbd>
GuiSim

1
Bulamadığı sınıfa gidin ve ⌥ + Enter tuşuna basın. Aşağı kaydırdığıma sevindim.
Ajak6

1
Alt+EnterDaha parmak dostu bir kombinasyona yeniden eşleştirmenin bir yolu var mı ? IntelliJ IDEA > Preferences > KeymapMenüden anlayamadım .
laylaylom

1
Eclipse'in ithalat beyanı eklemesinin eksik yolunu IDEA'lardan daha kolay buldum. Alt + Enter yazmadan önce fare imlecini nereye koyacağımı her zaman kafam karışıyor
vikramvi

F2 (Sonraki Vurgulanan Hata) ile birlikte Alt + Enter, (çok) büyük Sınıflar için bile genellikle oldukça hızlıdır.
osundblad

10

Görünüşe göre IntelliJ IDEA, kaçırılan sınıfı otomatik olarak içe aktaracak ve bunları Alt+ Entertuşuyla manuel olarak içe aktarabilirsiniz .


8

Bence en iyi çözüm Eclipse / Netbeans ile tam olarak aynı olmasa da, 'Optimize Import' ayarlarını değiştirmek.

Altında Preferences > Editor > General > Auto Import

Ayarlamak Add unambiguous imports on the fly

Düzenleme: Bu yöntemi kullanarak , belirsiz içe aktarmalar olduğunda IntelliJ size bildirir ve ardından Wuaner tarafından verilen yanıtta ana hatlarıyla belirtilen Alt+ Enteryöntemini kullanabilirsiniz.

Neredeyse her zaman, en uygun İthalatın listenin başında olduğunu görüyorum.


1
@Raja Ben de neden emin değilim. İş arkadaşlarıma bu yöntemi kullanmamayı seçtiklerini söylediğimde gizemli olduğunu biliyorum.
comfytoday

Talimatlar oldukça açık. Yalnızca unambiguoussınıfları otomatik olarak içe aktarır . Ve son iki günden beri 3000'den fazla sınıf projemde kullanıyorum. Tıkır tıkır çalışıyor. Paylaşım için teşekkürler.
Raja Anbazhagan

5

Hepsini bir kerede içe aktaramaz, ancak aşağıdaki kombinasyonu kullanabilir:

ALT+ Enter-> Niyet eylemlerini ve hızlı düzeltmeleri gösterin.

F2 -> Sonraki vurgulanan hata.


3

Diğer bir seçenek de IDEA'dan tutulma kısayol tuşları ile tutulma gibi davranmasını istemektir. Tüm tutulma kısayollarını kullanabilirsiniz etkinleştirerek .

İşte adımlar:

1- IDEA açıkken Control + ` tuşlarına basın . Aşağıdaki seçenekler açılacaktır.

görüntü açıklamasını buraya girin

2- Keymap'i seçin. Başka bir açılır pencere göreceksiniz. Orada Eclipse'i seçin.

görüntü açıklamasını buraya girin

3- Şimdi tuşuna basınCtrl + Shift + O . Bitirdiniz!


Denedim. "İthalatı organize et" in Eclipse gibi davranmasını sağlamaz.
Florian F

0

Mac'te paketi otomatik olarak içe aktarmak ve kullanılmayan paketleri otomatik olarak kaldırmak için control+ option+ kullanınL

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.