ChatGPT解决这个技术问题 Extra ChatGPT

像在 Eclipse 中那样自动导入 IntelliJ IDEA 中的类的任何方式(或快捷方式)?

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

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

我在 google、StackOverflow、IntelliJ IDEA 配置和 IntelliJ 官方网站中搜索了等效快捷方式 Keyboard Shortcuts You Cannot Miss

查找命令/键盘快捷键时,键入 Ctrl-shift-A(或 Mac 上的 Cmd-shift-A),然后搜索命令。例如在这里,输入“imports”将显示命令“Optimize imports”及其键盘快捷键。
“优化导入”不起作用添加类
如果您在“设置”>“编辑器”>“常规”>“自动导入”下启用了类的自动导入,则它会起作用。
这确实是intellij最大的失败。这是一种痛苦。在导入时发生冲突和合并是愚蠢的,但 intellij 无法轻松帮助您解决它

J
Javaru

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

对于不明确的类(或者您更喜欢关闭“动态添加明确的导入”选项),只需键入类的名称(只需名称即可,无需完全限定)。使用代码完成并选择您想要的特定类:

https://i.stack.imgur.com/Zmo2p.png

请注意右侧的完全限定名称。当我选择我想要的并回车时,IDEA 会自动添加导入语句。如果我输入构造函数的名称,这也是一样的。对于静态方法,您甚至可以继续键入您想要的方法。在以下屏幕截图中,尚未导入“StringUtils”类。

https://i.stack.imgur.com/Z8Gft.png

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

虽然我从未使用过它,但我认为 Eclipse Code Formatter 第三方插件可以满足您的需求。它将“模拟 Eclipse 的导入优化”列为一项功能。有关详细信息,请参阅其 instructions。但最后,我怀疑一旦你习惯了他们的范例,你会发现内置的 IDEA 功能可以正常工作。一般来说,IDEA 使用“按意图开发”的概念。因此,与其中断我的开发工作来添加导入语句,我只需键入我想要的类(我的意图),IDEA 会自动为我添加该类的导入语句。


当您编辑旧文件时,这种方式的工作量要大得多。
这对我不起作用。当我在选择出现在自动完成列表中的类后按 Enter 时,IntelliJ 不会导入它。相反,它写入类的完全限定名称。这是非常烦人和无用的。你知道如何解决这个问题吗?
这种行为的原因是我试图导入的类不在构建路径中。添加后,按 Enter 正确导入了该类。
我来这个问题是希望为 IntelliJ 找到任何这样的快捷键。问题是,如果我注释大部分具有类的代码,IntelliJ 会自动删除命名空间导入。现在,如果我取消注释代码,IntelliJ 不会重新导入相同的命名空间,继续为每个命名空间执行 ALT+Enter 会变得非常令人头疼。有什么解决办法吗?
我同意@RahulSaini 的观点。没有理由为单个活动设置两个单独的键映射。我不想也不应该做多件事来完成一个动作。我想说的是,在这一点上,intellij 只是对它好战,没有真正的理由不“组织”进口,而不是“优化”进口。我真的很想否决这个答案,即使它在技术上是正确的。
O
Ondra Žižka

不是一下子。但是你可以按

Alt + Enter

人们认为它仅在您处于特定项目时才有效。但它实际上适用于“下一个缺失的类型”。所以如果你一直按 Alt + Enter,IDEA 会一个接一个地修复,直到全部修复。


我假设您指的是键盘键符号。这些可以使用 kbd 标签<kbd>Alt</kbd> + <kbd>Enter</kbd>添加
转到它无法找到的类,然后按 ⌥+ Enter。很高兴我向下滚动。
有没有办法将 Alt+Enter 重新映射到对手指更友好的组合?我无法通过 IntelliJ IDEA > Preferences > Keymap 菜单弄清楚。
我发现 Eclipse 缺少导入语句添加的方式比 IDEA 更容易。在输入 Alt + Enter 之前,我总是很困惑将鼠标光标放在哪里
Alt+Enter 结合 F2(下一个突出显示的错误)通常非常快,即使对于(太大)类。
c
comfytoday

我认为最好的解决方案,虽然与 Eclipse/Netbeans 不完全一样,是更改“优化导入”设置。

Preferences > Editor > General > Auto Import

设置Add unambiguous imports on the fly

编辑:使用此方法,当有 不明确的导入时,IntelliJ 会通知您,然后您可以使用中概述的 Alt + Enter 方法answer by Wuaner

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


@Raja我也不知道为什么。我确实知道,当我告诉我的同事时,尽管他们选择不使用这种方法……但很神秘。
说明很清楚。它只会自动导入 unambiguous 类。自从过去两天以来,我一直在我的 3000 多个课程项目中使用它。奇迹般有效。感谢分享。
L
Lyncean Patel

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

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

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


i
icebat

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


A
Alon

另一种选择是使用 Eclipse 快捷键让 IDEA 表现得像 Eclipse。您可以通过启用它来使用所有 eclipse 快捷方式。

以下是步骤:

1- 打开 IDEA,按 Control + `。将弹出以下选项。

https://i.stack.imgur.com/4lV3K.png

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

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

https://i.stack.imgur.com/RaJV2.png

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


我试过了。它不会使“组织导入”以 Eclipse 的方式运行。
N
NarendraR

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


U
Unnikrishnan S

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


J
Jun

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


零还是欧?两者都不适用于 IDEA CE 2019。
M
Mbuso Kotobe

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

alt + shift + 回车

这将自动导入所需的类。