有什么方法(或捷径)在Eclipse中自动导入IntelliJ IDEA中的类?


121

在Eclipse中,使用Java进行编码时,按Ctrl+ Shift+ O自动自动导入所有类。
在NetBeans中,这是通过Ctrl+ Shift+ 完成的I

有什么办法可以在IntelliJ IDEA中做到这一点?

我在google,StackOverflow,IntelliJ IDEA配置和IntelliJ官方网站上都找到了一个等效的快捷键,您不能错过



4
当寻找命令/键盘快捷键时,键入Ctrl-shift-A(在Mac上为Cmd-shift-A),然后搜索命令。例如,在这里输入“ imports”将显示命令“ Optimize imports”及其键盘快捷键。
JB Nizet

2
“优化导入”不适用于添加类
bywronski

如果在“设置>编辑器>常规>自动导入”下启用了类的自动导入,则该类将起作用。
安德烈·贝尔贡佐

这确实是intellij的最大失败。这很痛苦。越来越冲突和合并进口是愚蠢的,但的IntelliJ不能轻松帮你解决这个问题
石羊

Answers:


103

IntelliJ IDEA没有添加导入的操作。而是具有您键入时执行的功能。如果启用“ 设置”>“编辑器”>“常规”>“自动导入 ”中的即时添加明确的导入” ,则IntelliJ IDEA将在您键入时添加它们,而无需任何快捷方式。您还可以添加类和包以排除自动导入,以使您大量使用的类与其他同名类明确地冲突。

对于模棱两可的类(或者您更希望关闭“动态添加明确的导入”选项),只需键入类的名称(只要名称确定即可,无需完全限定)。使用代码完成功能,然后选择所需的特定类:

在此处输入图片说明

注意右边的标准名称。当我选择我想要的一个并按Enter时,IDEA将自动添加import语句。如果我键入构造函数的名称,则其工作原理相同。对于静态方法,您甚至可以继续键入所需的方法。在以下屏幕截图中,尚未导入“ StringUtils”类。

在此处输入图片说明

或者,键入类名称,然后按Alt+ Enter+ Enter到“显示意图动作和快速修复”,然后选择导入选项。

虽然我从来没有使用过它,我Eclipse代码格式化第三方插件将做你想做的。它列出了“模拟Eclipse的导入优化”功能。有关更多信息,请参见其说明。但是最后,我怀疑一旦您习惯了它们的范例,便会发现内置的IDEA功能可以正常工作。通常,IDEA使用“按意图开发”的概念。因此,我不必打扰我的开发工作来添加import语句,而是键入我想要的类(我的意图),IDEA会自动为我添加该类的import语句。


7
当您编辑旧文件时,用这种方法需要做很多工作。
亚当

这对我不起作用。当我选择自动完成列表中显示的类后按Enter键时,IntelliJ不会导入它。相反,它将编写该类的完全限定名称。这是非常烦人和无用的。你知道如何解决这个问题吗?
罗德里戈

^出现这种现象的原因是我尝试导入的类不在构建路径中。添加后,按Enter即可正确导入该类。
罗德里戈

3
我遇到这个问题是希望找到IntelliJ的任何此类快捷键。问题是,如果我注释了包含类的大部分代码,则IntelliJ会自动删除名称空间导入。现在,如果我取消注释代码,则IntelliJ不会重新导入相同的名称空间,而继续对每个名称空间执行ALT + Enter则变得非常麻烦。有什么办法吗?
拉胡尔·塞尼

我对此同意@RahulSaini。没有理由为一个活动有两个单独的键映射。我不想也不必做很多事情来完成一个动作。我要说的是,此时intellij对此只是好战,没有真正的理由不“组织”进口而不是“优化”进口。尽管从技术上讲它是正确的,但我真的想对此答案投反对票。
peekay

73

并非一次全部。但是你可以按

Alt + Enter

人们认为它仅在您使用特定物品时才有效。但是它实际上适用于“下一个缺失类型”。因此,如果持续按Alt+ Enter,IDEA会一遍又一遍地修复,直到所有问题都被修复为止。


1
我假设您指的是键盘按键符号。可以使用kbd标签<kbd>Alt</kbd> + <kbd>Enter</kbd>
GuiSim,2016年

1
转到找不到的课程,然后按⌥+ Enter。很高兴我向下滚动。
Ajak6'6

1
有没有办法重新映射Alt+Enter到更友好的手指组合?我无法通过IntelliJ IDEA > Preferences > Keymap菜单弄清楚。
–laylaylom

1
我发现Eclipse缺少导入语句添加的方式比IDEA容易。在输入Alt + Enter之前,我总是很困惑将鼠标光标放在哪里
vikramvi '18

Alt + Enter与F2(“下一个突出显示的错误”)结合使用通常非常快,即使对于(太大)类也是如此。
osundblad

10

似乎IntelliJ IDEA会自动导入错过的课程,您可以按hit Alt+ Enter手动导入它们。


8

我认为最好的解决方案,尽管与Eclipse / Netbeans并不完全相同,是更改“优化导入”设置。

Preferences > Editor > General > Auto Import

Add unambiguous imports on the fly

编辑:使用此方法,当暧昧进口的IntelliJ将让你知道,你就可以使用Alt+ Enter方法的概述通过Wuaner答案

我发现,几乎总是最合适的导入位于列表的顶部。


1
@Raja我也不知道为什么。我确实知道,当我告诉我的同事时,他们选择不使用这种方法……很神秘。
comfytoday

说明非常清楚。它仅自动导入unambiguous类。自从过去两天以来,我一直在3000多个班级的项目中使用它。奇迹般有效。感谢分享。
Raja Anbazhagan

5

无法一次全部导入,但可以使用以下组合:

ALT+ Enter->显示意图动作和快速修复。

F2 ->下一个突出显示的错误。


3

另一个选择是让IDEA像使用Eclipse快捷键的Eclipse一样运行。您可以使用所有Eclipse快捷方式通过启用。

步骤如下:

1-在IDEA打开的情况下,按Control +`。将会弹出以下选项。

在此处输入图片说明

2-选择键盘映射。您将看到另一个弹出窗口。在此处选择Eclipse。

在此处输入图片说明

3- 现在按Ctrl + Shift + O大功告成!


我试过了。它不会使“组织导入”表现出Eclipse方式。
Florian F

0

使用control+ option+ L自动导入软件包并在Mac上自动删除未使用的软件包

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.