繁体   English   中英

任何方式(或快捷方式)自动导入 IntelliJ IDEA 中的类,如 Eclipse?

[英]Any way (or shortcut) to auto import the classes in IntelliJ IDEA like in Eclipse?

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

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

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

IntelliJ IDEA 没有添加导入的操作。 相反,它有能力像你打字那样做。 如果您在Settings > Editor > General > Auto Import 中启用“动态添加明确导入”,IntelliJ IDEA 将在您键入时添加它们,而无需任何快捷方式。 您还可以添加类和包以从自动导入中排除,以使您经常使用的类与同名的其他类发生冲突,明确无误。

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

在此处输入图片说明

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

在此处输入图片说明

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

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

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

Alt + Enter

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

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

Preferences > Editor > General > Auto Import

设置动态Add unambiguous imports on the fly

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

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

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

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

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

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

另一种选择是使用 eclipse 快捷键要求 IDEA 表现得像 eclipse。 您可以通过启用此功能来使用所有 eclipse 快捷方式

以下是步骤:

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

在此处输入图片说明

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

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

在此处输入图片说明

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

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

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

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

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

alt + shift + Enter

这将自动导入所需的类。

更新

@ntg为将import.*转换为现有文件中的单个导入提供了一个非常聪明的解决方案(它不是完全自动的,但仍然很省力)

  • Go 到任何import.*语句并按Alt Enter (Mac 上为 return
    • 将出现一个弹出窗口,用单个导入替换 * 导入
  • 然后再次按 Enter

在此处输入图像描述


原始答案

不确定这是否通用,但我发现启用以下两个设置后(如前面的答案所述),我的IntelliJ能够巧妙地将package.*导入转换为单个导入(在现有文件中),只需删除import com.company.package.*线

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

在此处输入图像描述

本质上,它将能够为我们添加所有“明确”的导入,rest 必须手动解决


我在用着

  • IntelliJ IDEA Ultimate 2022.1(内部版本 #IU-222.3739.54)
  • macOS 蒙特雷 12.5.1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM