有什么方法(或快捷方式)可以像 Eclipse 一样自动导入 IntelliJ IDEA 中的类吗?

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

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

我在 google,StackOverflow,IntelliJ IDEA 配置和官方 IntelliJ 网站 你不能错过的键盘快捷键中搜索了一个等价的快捷方式

203439 次浏览

IntelliJIDEA 没有添加导入的操作。相反,它具有按照您输入的方式进行操作的能力。如果您在 设置 > 编辑器 > 常规 > 自动导入中启用了“添加明确的动态导入”,IntelliJ IDEA 将在您输入时添加它们,而不需要任何快捷方式。您还可以添加要从自动导入中排除的类和包,以使您使用频繁、与同名的其他类冲突的类明确无误。

对于不明确的类(或者您希望关闭“添加明确的动态导入”选项) ,只需键入类的名称(只要名称是 OK 的,不需要完全限定)。使用代码完成并选择所需的特定类:

enter image description here

请注意右侧的完全限定名。当我选择一个我想要的,并点击回车,IDEA 将自动添加导入语句。如果输入构造函数的名称,也是如此。对于静态方法,您甚至可以继续键入所需的方法。在下面的截图中,还没有导入“ StringUtils”类。

enter image description here

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

虽然我从来没有使用它,我 好好想想Eclipse Code Formatter Eclipse 代码格式化程序第三方插件将做你想要的。它将“模拟 Eclipse 的导入优化”列为一个特性。有关更多信息,请参见其 指示。但是最后,我怀疑一旦您习惯了 IDEA 的范例,您会发现内置的 IDEA 特性工作得很好。一般来说,IDEA 使用“按意图开发”的概念。因此,与其中断我的开发工作来添加导入语句,我只需键入我想要的类(我的意图) ,IDEA 会自动为我添加该类的导入语句。

不是一次性的,但你可以按

Alt + Enter

人们认为它只有当你在特定的项目时才起作用。但它实际上适用于“下一个失踪类型”。所以如果你一直按 Alt + Enter,IDEA 就会一个接一个地修复,直到所有的问题都解决了。

看起来 IntelliJIDEA 会自动导入错过的类,你可以通过点击 Alt + Enter手动导入它们。

我认为最好的解决方案,虽然不完全相同于 Eclipse/Netbeans,是改变“ Optimize Imports”设置。

Preferences > Editor > General > Auto Import下面

设定 Add unambiguous imports on the fly

编辑: 使用这个方法,当有 模棱两可的导入时,IntelliJ 会让您知道,然后您可以使用 作者: Wuaner中概述的 Alt + Enter方法

我发现,几乎总是最合适的 Import 在列表的顶部。

另一个选项是要求 IDEA 使用 Eclipse 快捷键.您可以使用所有 Eclipse 快捷方式表现得像 eclipse 一样。

以下是步骤:

随着 IDEA 打开,按 控制 +’。以下选项将弹出。

enter image description here

2-选择 Keymap。您将看到另一个弹出窗口。在那里选择 Eclipse。

如果您在选项中没有看到“ Keymap”,请安装“ Eclipse Keymap”插件

enter image description here

3-现在按 Ctrl + Shift + O 你完蛋了!

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

ALT + Enter—— > 显示意图行动和快速修复。

下一个突出显示的错误。

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

使用 control + option + O在 MacOS 上自动导入包或自动删除未使用的包

使用 Alt + Enter导入单个包,或者使用 Alt + Shift + Enter自动导入当前文件中所有明确的包。

将鼠标悬停在需要类的代码上,然后按下

Alt + shift + Enter

这将自动导入所需的类。

更新

@ ntg 给出了一个 非常聪明的解决办法,用于将 import .*转换为现有文件中的单个导入(它不是完全自动的,但仍然相当低效)

  • 转到任意 import .*语句并按 Alt Enter(Mac 上的 return)
    • 弹出窗口将显示用单个导入替换 * 导入
  • 然后再按 Enter

enter image description here


原始答案

不确定这是否是通用的,但是我发现在启用了以下两个设置(如前面的答案所述)之后,我的 IntelliJ能够只启用 通过删除 import com.company.package.*(在现有文件中)

  • 动态添加明确的导入
  • 动态优化导入

enter image description here

基本上,它将能够为我们添加所有“明确”的导入,其余的将不得不手动解决


我在吸毒

  • IntelliJ IDEA Ultimate 2022.1(Build # IU-222.3739.54)
  • MacOS Monterey 12.5.1