ChatGPT解决这个技术问题 Extra ChatGPT

IntelliJ 组织导入

IntelliJ 是否具有类似于 Eclipse 中的 Organize Imports 功能?我所拥有的是一个 Java 文件,其中有多个类缺少它们的导入。例子:

package com.test;
public class Foo {
    public Map map;
    public JTable table;
}

在 Eclipse 中,我可以使用 Organize Imports,它会自动导入 java.util.Mapjavax.swing.JTable。在 IntelliJ 中,我必须单独前往每个班级,选择它,然后按 Alt-Enter。有一个优化导入功能,但它似乎只是对现有导入进行排序和扩展。

我正在使用 IntelliJ 10.5。

我仍然找不到 Eclipse 的 Ctrl+Shift+O 的替代方法
你试过Ctrl+Alt+O吗?它会自动添加任何唯一的导入,并提示您按 Alt + Enter 在相似的导入之间进行选择。仅供参考,我正在使用 IntelliJ 12。
除了 Ctrl + Alt + O 不会返回它无法决定的导入......例如,如果有多个导入可供选择(我试图弄清楚如何选择它们,因为我没有有他们在我的键盘上建议的字符符号),然后它会说,“未找到未使用的导入”。

m
mcw

Ctrl + Alt + O(代码 → 优化导入...)是您正在寻找的,无论是在 Windows/Linux 和 macOS 键盘映射上。

它说“优化”,但是,如果配置为这样做,它还将:

组织现有的进口

删除不需要的导入

添加新的必需导入

即时添加明确的导入

您可以在“设置 → 编辑器 → 常规 → 自动导入as described by Dave下调整自动导入设置。

您还可以在“设置→编辑器→代码样式→Java→导入”下修改导入的自动排序方式


我不断收到短暂的反对票,可能是由于混乱。我已经更新了我的答案,以解释这如何满足原始问题。
当依赖项中的包名称发生更改时,它不起作用。即使它仍然很明确,我也必须为每个受影响的类单击 ClassName 并按 Alt+Enter 和 Enter...
在 Mac 上也是 CTRL + ALT + O(至少在 Android Studio 1.0 中)
我发现默认情况下不选中“动态添加明确导入”选项非常愚蠢。谁更喜欢自己做这个,一个班一个班?
应该是Settings → Editor → General → Auto Import
A
Andrea Bergonzo

"Settings -> Editor -> General -> Auto Import" 下,有几个关于自动导入的选项。只能自动添加明确的导入;这是选项之一。


这个答案没有足够的赞成票。是的,@ryan-stewart 的回答完全回答了 OP 的问题,但是这个答案提供了 OP 没有问的问题的解决方案:我如何永远解决这个问题,而不仅仅是一次如何解决它。
现在是Setting > Editor -> General > Auto Import
我修复了在 classes 上添加检查的问题
它不适用于包/文件夹/项目级别,是吗?我在项目、src、java 上做了一个 'ctrl + alt + o' 并做了 mvn clean 测试......我仍然得到最近重构的'symbol not found'。
@old-monk 它适用于编辑所知道的;重构中的某些东西更有可能被破坏,但不可能说。
R
Rohit Mandiwal

简单而简短的解决方案对我有用。

转到 File -> Settings -> Editor -> Auto Import -> Java(左侧面板)并进行以下操作:选中“Add unambigious imports on the fly”和“Optimize imports on the fly”复选框

参考这个。

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


它不适用于包/文件夹/项目级别,是吗?我在项目、src、java 上做了一个 'ctrl + alt + o' 并做了 mvn clean 测试......我仍然得到最近重构的'symbol not found'。
t
t0r0X

除了 @dave-newton 和 @ryan-stewart 在早期答案中指出的 Optimize ImportsAuto Import,请访问:

IDEA <= 13:文件菜单 > 设置 > 代码样式 > Java > 导入

IDEA >= 14:文件菜单 > 设置 > 编辑器 > 代码样式 > Java > 导入(感谢@mathias-bader 的提示!)

在那里您可以微调分组和顺序或导入,“Class count to use import with '*'”等。

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


从 IntelliJ IDEA 14 开始,可以在 Settings > Editor > Code Style > Java > Imports 下找到
@mathias-bader 感谢您指出“设置”页面更改
为屏幕截图点赞!爱它。视觉价值1000字!
S
Steve Kuo

2015 年 7 月 - 我的结论是 IntelliJ 不支持使用单个函数自动解析导入。 “组织导入”只是删除未使用的导入,它不会解析未导入的类型。 Control-Space 解析单个未导入的类型。不存在解决所有类型导入的单一操作。


这是我的经验。令人沮丧。
这也让我绊倒了。请参阅下面的@rohit 解决方案。文件 -> 设置 -> 编辑器 -> 常规 -> 自动导入 -> Java 并检查他突出显示的所有三个选项。这对我有用。
奇怪的是,这是公认的答案,因为它非常不准确。请参阅stackoverflow.com/a/8609200/839646
@RyanStewart 它不会像 Eclipse 那样解决模棱两可的导入。 Eclipse 有歧义时会提示,IntelliJ 直接忽略。
我有同样的挫败感,但是,@Ryan 是正确的。 CTRL ALT O ,可以添加缺少的导入。但是你必须在设置中配置它>编辑器->一般 >自动导入,并选中“即时添加明确的导入”然后解析类中的所有导入。
M
Martin Marconcini

导航到要组织导入的文件,或者只需单击整个包,甚至单击项目,而不是按 CTRL + ALT + O


This answer already exists。您可以考虑添加额外信息(“您可以单击整个包,甚至单击项目而不是按 CTRL + ALT + O”)作为对该答案的评论
J
Joe

在 IntelliJ 14 中,自动导入设置的路径已更改。路径是

IntelliJ IDEA->首选项->编辑器->常规->自动导入

然后按照上面的说明,单击“即时添加明确的导入”

我无法想象为什么默认情况下不会设置它。


T
Tiago Gaspar

Mac 的快捷键:(ctrl + opt + o)


不,它的控制+选项+ o
实际上,此答案与此问题中投票最多的答案相同。
M
Manga Rao

转到帮助 - > 查找操作(快捷键是 Cntl + Shift + A)并输入优化导入(快捷键是 Cntl + Alt + O)


S
Shairyar

只需将鼠标移到丢失的视图上并在 Windows ALT + ENTER 上按一下键


A
Ali.Mojtehedy

ALT+ENTER 与eclipse习惯相差甚远,在IDEA中鼠标悬停不起作用,所以在setting>IDESetting>Keymap>Show intention actions and quick-fixes中我将其更改为鼠标左键单击,它不支持鼠标悬停!但鼠标左键单击没问题,最接近我的意图。


A
Alexandre DuBreuil

该插件将在文件保存时自动执行“组织导入”操作:https://github.com/dubreuia/intellij-plugin-save-actions

要安装:“文件>设置>插件>浏览存储库...>搜索'保存操作'>类别'代码工具'”。然后激活“组织导入”保存动作。


根据一个(缺失的)功能判断工具可能不被视为深思熟虑的判断。如果插件不起作用,请随时在此处填写错误:github.com/dubreuia/intellij-plugin-save-actions/issues
你是对的,在正常情况下这不是一个深思熟虑的判断。然而,对于终极工具中一个令人震惊的缺失基本功能,它是一种发泄的挫败感。我花了 2 个小时痛苦地试图让这个简单、重要的功能发挥作用,但没有成功。更糟糕的是,它不是默认的内置功能(就像 Eclipse 做得多么优雅),真正需要编写一个插件来实现这一点!这就像建造最先进和最复杂的大型喷气式飞机但没有空调,而是给每位乘客一个纸扇!我在 Eclipse 中花了 1 秒。
实际上,使用这个插件突出了 IntelliJ 的一个问题和弱点。我不得不禁用这个插件,因为它会在每次自动保存时劫持 IntelliJ,使其无法使用且速度缓慢。这是因为它会尝试在我每次输入内容时执行所有保存操作。如果可以以某种方式关闭自动保存,那么这个插件确实非常有用。
M
Martin Vysny

我终于针对这个令人沮丧的问题创建了一个解决方法。我对解决方法并不完全满意,但总比没有好。

基本上,在您粘贴源代码并修复明确的导入后,只需按 F2 以突出显示下一个编译器错误。如果当前错误是缺少导入的错误,请按 Alt+Enter,然后按 Enter 选择 Import 选项,然后选择正确的导入。然后,再次按 F2


D
Dave Newton

如果您只缺少一个导入(类名有红色下划线),单击并将鼠标悬停在它上面,将出现一条蓝色的建议导入语句。如果此时按 Alt + Enter,导入将包含在文件中,红色下划线应该消失。


很确定这是一个多平台功能
C
Cristan

MacOS 上 Android Studio 的快捷键:Control + Option + O


C
Clara

[对于如何在 IntelliJ idea 中优化导入的快速提示,这可能仍然是一个有用的链接] https://youtu.be/14odF-8X76o


您的答案可以通过额外的支持信息得到改进。请edit添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。您可以找到有关如何写出好答案的更多信息in the help center