【问题标题】:IntelliJ Organize ImportsIntelliJ 组织导入
【发布时间】:2012-01-26 09:07:09
【问题描述】:

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 不会返回它无法决定的导入......例如,如果有多个导入可供选择(我试图弄清楚如何选择它们,因为我的键盘上没有它们建议的字符符号),然后它会说,“未找到未使用的导入”。

标签: java intellij-idea


【解决方案1】:

"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 它适用于编辑所知道的;更有可能是重构中的某些东西被破坏了,但不可能说。
【解决方案2】:

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
【解决方案3】:

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

  • 想法 File menu > Settings > Code Style > Java > Imports
  • IDEA >= 14:File menu > Settings > Editor > Code Style > Java > Imports(感谢@mathias-bader 的提示!)

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

注意:
从 IDEA 13 开始,您可以从 IDEA“起始页”配置项目默认设置:Configure > Project defaults > Settings > ...。然后每个新项目都将具有这些默认设置:

【讨论】:

  • 从 IntelliJ IDEA 14 开始,这个可以在Settings > Editor > Code Style > Java > Imports下找到
  • @mathias-bader 感谢您指出“设置”页面更改
  • 感谢屏幕截图!爱它。视觉价值 1,000 字!
【解决方案4】:

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

【讨论】:

  • 很确定这是一个多平台功能
【解决方案5】:

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

【讨论】:

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

只需将鼠标移到缺少的视图上,然后在 Windows 上按键 ALT + ENTER

【讨论】:

    【解决方案7】:

    ALT+ENTER 远不是 eclipse 的习惯,在 IDEA 对我来说鼠标悬停不起作用,所以在setting>IDESetting>Keymap>Show intention actions and quick-fixes 我把它改成了鼠标左键,它不支持鼠标悬停!但是鼠标左键单击没问题,并且最接近我的意图。

    【讨论】:

      【解决方案8】:

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

      【讨论】:

      • 不,它的控制+选项+o
      • 实际上这个答案与这个问题中投票最多的答案相同。
      【解决方案9】:

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

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

      【讨论】:

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

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

      【讨论】:

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

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

      转到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 not found'。
      【解决方案12】:

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

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

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

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

      【讨论】:

        【解决方案13】:

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

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

        【讨论】:

          【解决方案14】:

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

          【讨论】:

            【解决方案15】:

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

            【讨论】:

              【解决方案16】:

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

              【讨论】:

              • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
              猜你喜欢
              • 1970-01-01
              • 2012-10-06
              • 1970-01-01
              • 2015-04-01
              • 2019-07-07
              • 2013-01-20
              • 1970-01-01
              • 1970-01-01
              • 2020-08-31
              相关资源
              最近更新 更多