ChatGPT解决这个技术问题 Extra ChatGPT

IntelliJ:永远不要使用通配符导入

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

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


G
Guildenstern

很明显为什么要禁用它:强制 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 的值似乎都可以正常工作。


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

文件\设置... (Ctrl+Alt+S) 项目设置 > 编辑器 > 代码样式 > Java > 导入选项卡 将使用带“*”的导入的类计数设置为 999 将使用带“*”的静态导入的名称计数设置为 999

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

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


M
Matt Klein

就像一个傻瓜一样,我无法弄清楚为什么这些答案都不适用于我的 java.util.* 的 Kotlin 文件,所以如果这发生在你身上,那么:

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

你不是那里唯一的笨蛋……/:(:)
我对 Groovy 也有同样的问题。
K
Kanke

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

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


A
Amio.io

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


C
CoolMind

在带有 Kotlin 的 Android Studio 中。

文件 > 设置,

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

同时删除 import java.util.*

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


谢谢,@CoolMind。这是唯一对我有用的东西 - 我不能只取消选中 import java.util.*(macOS Big Sur / Android Studio Arctic Fox 2020.3.1 Patch 1)。
u
user84

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

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

https://i.stack.imgur.com/94GRg.png


N
Neeraj Jain

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

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

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

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

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


H
Heungwoo

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


S
Solubris

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

[*.java]
ij_java_names_count_to_use_import_on_demand = 999
ij_java_class_count_to_use_import_on_demand = 999

@wakedeer 不是我所知道的,这是最初提出的问题,到目前为止,共识似乎是使用 999。
999 就足够了,但最大值是 2147483647。这是我发现的自动生成的 kotlin 规则。
u
user2789973

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


A
Alex Green

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


默认情况下,IntelliJ 认为使用 * 折叠导入是一种优化。
我不同意“你不想改变偏好”,但键盘快捷键对我有用!
如果您更改设置,例如 this,然后是 Ctrl + Alt + O(在 Linux 上)或 Ctrl + Option + O(在 Mac 上),则 IDE 将删除 Wildcard import 并添加必要的单一名称导入。
S
Sandro

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