【问题标题】:IntelliJ: Never use wildcard importsIntelliJ:永远不要使用通配符导入
【发布时间】:2024-09-30 07:40:02
【问题描述】:

有没有办法告诉 IntelliJ 永远不要使用通配符导入? 在“设置 > 代码样式 > 导入”下,我可以看到您可以在 IntelliJ 之前使用通配符导入指定“类计数”。但是,如果我不想使用通配符导入,是否可以关闭此功能?

我尝试输入 -1 或将该字段留空,但这只是告诉 IntelliJ 始终使用通配符导入。显然,一个不太好的解决方案是设置一个高得离谱的数字,这样您就不会遇到通配符导入,但我希望有更好的方法来关闭它。

【问题讨论】:

    标签: java intellij-idea settings


    【解决方案1】:

    很明显为什么要禁用它:强制 IntelliJ 单独包含每个导入。它使人们更容易弄清楚您使用的类的确切来源。

    点击工具栏上的设置“扳手”图标,打开“代码样式”下的“导入”,勾选“使用单类导入”选项。您还可以完全删除“使用 * 导入的包”下的条目,或者指定一个阈值,当包中的各个类超过该阈值时,该阈值仅使用“*”。

    更新: 在 IDEA 13“使用单类导入”中不会阻止通配符导入。解决方案是转到Preferences ( + , on macOS / Ctrl + Alt + S 在 Windows 和 Linux 上)> Editor > Code Style > Java > Imports tabClass count to use import with '*'Names count to use static import with '*' 设置为更高的值。任何超过 99 的值似乎都可以正常工作。

    【讨论】:

    • 以防万一它避免了其他人的困惑:在我永远不会崩溃导入的热情中,我在'class count to use...'字段中放了一个不合理的长字符串9,这导致了IntelliJ 12 默默地忽略这个值。 '9999' 工作正常。
    • 真的没有办法告诉 Intellij 15 永远不要使用通配符导入吗?我的意思是不指定班级人数??!
    • 为什么添加班级人数会如此压抑?如果这太可恶了,为什么不向 JetBrains 寻求改进呢?
    • 看起来三个 9 就足够了。如果你需要一千多个导入,我会说你的类应该重构。
    • 无法相信程序以编程方式为程序员编写了程序。这个令人困惑的对话框在 2016.3 中仍未修复,是否存在错误,或者我们可以投票的地方?
    【解决方案2】:

    上面的解决方案对我不起作用。我必须将'class count to use import with '*''设置为一个高值,例如999.

    【讨论】:

      【解决方案3】:
      1. 文件\设置... (Ctrl+Alt+S)
      2. 项目设置 > 编辑器 > 代码样式 > Java > 导入选项卡
      3. 类计数设置为999
      4. 名称计数设置为使用带有“*”的静态导入为 999

      在此之后,您的配置应如下所示:

      (在 IntelliJ IDEA 13.x、14.x、15.x、2016.x、2017.x 上)

      【讨论】:

        【解决方案4】:

        如果以上都不适合你,那么值得检查一下你是否有任何包在 Preference > Editor > Code Style > Java > Imports > Packages to Use Import with "*"

        【讨论】:

          【解决方案5】:

          如果您不想更改首选项,您可以通过在 Mac 上按 Ctrl+Option+o 或在 Windows/Linux 上按 Ctrl+Alt+o 来优化导入,这将用当前文件中的单个导入替换所有导入。

          【讨论】:

          • 默认情况下,IntelliJ 认为使用 * 折叠导入是一种优化。
          • 我不同意“你不想更改首选项”,但键盘快捷键对我有用!
          • 如果您更改设置,如this,然后更改Ctrl + Alt + O(Linux 上)或Ctrl + Option + O(Mac 上),IDE 将删除Wildcard imports 并添加必要的单一名称进口。
          【解决方案6】:

          在 Mac 上执行此操作的快捷方式: 按 command+Shift+A(操作)并输入“class count to use import with *” 按 Enter。在此处输入更大的数字,例如 999

          【讨论】:

            【解决方案7】:

            IntelliJ IDEA 2018.1.4(终极版) 建于 2018 年 5 月 16 日

            【讨论】:

              【解决方案8】:

              就像一个笨蛋一样,我不明白为什么这些答案都不适用于我的 java.util.* 的 Kotlin 文件,所以如果你发生了这种情况:

              Preferences
              > Editor
              > Code Style
              > **Kotlin**
              > Imports
              > Packages to Use Import with '*'
              -> Remove 'java.util.*'
              

              【讨论】:

              • 你不是唯一的笨蛋。/:(:)
              • 我在使用 Groovy 时遇到了同样的问题。
              【解决方案9】:

              这适用于 Mac 上的“IntelliJ IDEA-2019.2.4”。

              1. 导航到“IntelliJ IDEA->首选项->编辑器->代码样式->Kotlin”。
              2. 屏幕上的“要使用 Import with '' 的包”部分将列出“import java.util.

              1. 单击该框中的任意位置并清除该条目。
              2. 点击应用并确定。

              【讨论】:

                【解决方案10】:

                这适用于窗口上的“Intellij Idea-2020.1.2”

                导航到“IntelliJ IDEA->文件->设置->编辑器->代码样式->java”。

                【讨论】:

                  【解决方案11】:

                  将以下内容添加到 .editorconfig 文件可以节省每次从头重新导入项目时都必须应用设置:

                  [*.java]
                  ij_java_names_count_to_use_import_on_demand = 999
                  ij_java_class_count_to_use_import_on_demand = 999
                  

                  【讨论】:

                  • @wakedeer 不是我所知道的,这是最初提出的问题,到目前为止的共识似乎是使用 999。
                  【解决方案12】:

                  在带有 Kotlin 的 Android Studio 中。

                  文件>设置,

                  Editor > Code Style > Kotlin,然后“Imports”选项卡,选择“Use single name import”。

                  同时删除import java.util.*

                  【讨论】:

                  • 谢谢,@CoolMind。这是唯一对我有用的东西——我不能取消选中import java.util.*(macOS Big Sur / Android Studio Arctic Fox 2020.3.1 Patch 1)。
                  【解决方案13】:

                  在相关说明中:如果您的 java.util 包今天仍未解析为单个导入,那么可能是您在尝试更改 Java 设置时正在查看 Kotlin 文件,就像我所做的那样。 :-) Kotlin 有相同的设置来解决这个问题。

                  【讨论】: