IntelliJ组织进口


254

IntelliJ是否具有类似于Eclipse中的“组织导入”功能?我所拥有的是一个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。


17
我仍然找不到eclipse的Ctrl + Shift + O的替代方法
appbootup 2013年

16
您是否尝试过Ctrl + Alt + O?它会自动添加任何唯一的导入,并按Alt + Enter提示您在相似的导入之间进行选择。仅供参考,我使用的IntelliJ 12
divesh premdeep

6
除了Ctrl + Alt + O不会返回无法确定的导入...例如,如果有多个导入可供选择(我试图找出如何选择它们,因为我没有在我的键盘上输入建议的字符符号),然后说“找不到未使用的导入”。
Azurespot 2015年

Answers:


356

Ctrl在Windows / Linux和macOS键盘映射上,您都需要+ Alt+ O代码→优化导入...)。

它说“优化”,但是,如果配置成这样做,它也会:

  • 组织现有的进口
  • 删除不需要的进口
  • 添加新的所需进口
  • 快速添加明确的进口

您可以按照Dave的说明在“ 设置→编辑器→常规→自动导入 ” 下调整自动导入设置。

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


14
我一直在短暂地投票,可能是由于混乱。我已经更新了我的答案来解释这如何符合原来的问题。
瑞安·斯图尔特

4
依赖项中的程序包名称已更改时,它不起作用。即使它仍然是明确我必须点击类名打Alt + Enter键和Enter键,每个受影响的类...
Superole

7
在Mac上,它也是CTRL + ALT + O(至少在Android Studio 1.0中)
jlapoutre'1

9
我觉得很愚蠢,默认情况下未选中“动态添加明确的导入”选项。谁更喜欢自己一个人上课?
toni07 '02

3
应该是Settings → Editor → General → Auto Import
史蒂夫·皮尔斯

100

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


没有足够的投票赞成这个答案。是的,@ ryan-stewart的答案完全回答了OP的问题,但是此答案提供了OP没问过的问题的解决方案:我将如何永远解决这个问题,而不仅仅是我一次如何解决。
乔纳森·兰德伦

7
现在Setting > Editor -> General > Auto Import
幸运

我修正了添加支票的问题classes
Andrea Bergonzo

它在软件包/文件夹/项目级别上不起作用,对吗?我在项目,src,java上执行了“ ctrl + alt + o”,并进行了mvn clean测试……最近的重构我仍然没有找到“ symbol”。
老和尚

@ old-monk它与编辑器知道的有关;重构中的某些内容很可能已损坏,但无法说出。
戴夫牛顿

44

简单和简短的解决方案为我工作。

转到File- > Settings- > Editor- > Auto Import- > Java(左图),使下面的事情:选择复选框“ Add unambigious imports on the fly”和“ Optimize imports on the fly

请参考此。

在此处输入图片说明


它在软件包/文件夹/项目级别上不起作用,对吗?我在项目,src,java上执行了“ ctrl + alt + o”,并进行了mvn clean测试……最近的重构我仍然没有找到“ symbol”。
老和尚

44

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

  • 想法<= 13: File menu > Settings > Code Style > Java > Imports
  • 想法> = 14:(File menu > Settings > Editor > Code Style > Java > Imports感谢@ mathias-bader的提示!) 设置对话框

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

注意:
从IDEA 13开始,您可以从IDEA“起始页”中配置项目默认设置:Configure > Project defaults > Settings > ...。然后,每个新项目将具有这些默认设置: 在此处输入图片说明


7
从IntelliJ IDEA 14开始,可以在以下位置找到Settings > Editor > Code Style > Java > Imports
Mathias Bader

@ mathias-bader感谢您指出“设置”页面更改
t0r0X15年

1
截图的荣誉!爱它。视觉价值1000字!
原子88

42

2015年7月-我得出的结论是IntelliJ不支持使用单个功能自动解析导入。“组织导入”仅删除未使用的导入,而不解析未导入的类型。Control-Space解析单个未导入的类型。没有解决所有类型的导入的单个操作。


11
这是我的经验。令人沮丧
ayahuasca

1
这也让我绊倒了。请参阅下面的@rohit解决方案。文件->设置->编辑器->常规->自动导入-> Java,然后检查他突出显示的所有三个选项。这对我有用。
卡尔·罗斯曼

1
奇怪的是,这是公认的答案,因为它非常不准确。请参阅stackoverflow.com/a/8609200/839646
瑞安·斯图尔特

1
@RyanStewart不能像Eclipse一样解决歧义导入。Eclipse出现歧义时会提示您,IntelliJ只会忽略它。
Steve Kuo


9

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

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

然后按照上面的说明进行操作,点击动态添加明确的导入

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



2

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


2

ALT + ENTER远离日食习惯,在我的IDEA中,鼠标悬停不起作用,因此在setting>IDESetting>Keymap>Show intention actions and quick-fixes我将其更改为鼠标左键时,它不支持鼠标悬停!但是鼠标左键还可以,并且最接近我的意图。


2

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

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


1

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

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


判断一个(缺失)特征的工具可能不被认为是一种深思熟虑的判断。如果该插件不起作用,请不要犹豫,在此处填写错误:github.com/dubreuia/intellij-plugin-save-actions/issues
Alexandre DuBreuil 2015年

5
您是对的,在正常情况下这不是一个深思熟虑的判断。但是,这是对最终工具令人震惊地缺少的基本功能的一种发泄的挫败感。我花了2个小时痛苦地尝试使这个简单的基本功能正常工作,但没有成功。更糟糕的是,它不是真正需要内置插件才能实现的,而是默认情况下不是内置功能(例如Eclipse的优雅程度)!就像建造最先进的飞机和最复杂的大型喷气式飞机一样,但没有空调,而是为每个乘客提供一个纸扇!在Eclipse中花了我1秒钟。
DhafirNz

1
实际上,使用此插件突出了IntelliJ中的问题和弱点。我必须禁用此插件,因为它会在每次自动保存时劫持IntelliJ,从而使其无法使用且运行缓慢。这是因为它会尝试在我每次键入内容时执行所有保存操作。如果可以通过某种方式关闭自动保存功能,那么此插件确实非常有用。
DhafirNz 2015年

0

如果您仅丢失一个导入(类名带有红色下划线),请单击并将鼠标悬停在其上,然后将显示蓝色的建议导入语句。如果您此时单击Alt + Enter,则导入将包含在文件中,红色的下划线应消失。


可以肯定的是,这是一个多平台功能
Zach Lysobey

0

转到帮助->查找操作(此快捷方式为Cntl + Shift + A),然后键入优​​化导入(此快捷方式为Cntl + Alt + O)

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.