禁用IntelliJ的星号导入(包)?

240

我之前一直使用的是 Eclipse IDE,现在正在学习 IntelliJ IDEA 9。

Eclipse IDE 默认情况下只有在你从同一包中导入 99 个类时,才会使用星号(*)通配符导入,所以这几乎不会发生。

但是 IntelliJ IDEA 看起来非常热衷于使用星号通配符导入,并且我无法找到如何禁用它。

例如,在键入 JList 后按下 ALT + ENTER 自动导入后,整个 javax.swing 包被导入,而不仅仅是我指定的类。

我尝试将 javax.swing 排除在自动完成之外,但这只会阻止建议任何 Swing 类,这是适得其反的。


IntelliJ 9?第16版即将推出。升级到社区版或购买许可证。 - duffymo
3个回答

370

您可以在此设置此设置。

IDEA 14+中的顺序是:

设置 > 编辑器 > 代码样式 > Java > 导入 > 使用“*”导入的类数

在旧版本的IDEA中:

设置 -> Java -> 代码样式 -> 导入 -> 使用“*”导入的类数

该功能无法禁用。您需要将其设置为较高的值,例如99。

在2016.1.1版本中,您还应删除使用“*”导入的包下面的行,例如import javax.*;


10
现在,使用 import '*' 时的类计数使用静态导入 '*' 时的名称计数 都设置为 99 ,以复制 Eclipse 的行为。 - Iain Samuel McLean Elder
2
如果将该值设置为0而不是设置为一个较高的数字,则似乎可以正常工作。 - Alasdair McLeay
3
我的阈值需要设置得很高。如果我把阈值设为0,该功能将保持启用状态。最糟糕的是,到处都是星号导入(IDEA 2017.1)。 - Andrew
3
0摧毁了我,恢复并将其设为1000。 - CodeMonkey
2
这是语言特定的,因此如果您正在使用Kotlin或混合项目,请记得在Kotlin下设置。 - Steven Benitez
在2022.2版本中,你可以将框留空,而不是填入99。 - uranibaba

69

IntelliJ IDEA:

  • 141516 EAP:

    文件 > 设置... > 编辑器 > 代码样式 > Java > 导入 > 在通用区域中为使用“*”导入的类数: / 使用“*”静态导入名称数:添加一个大数字。

    文件 > 设置... > 编辑器 > 代码样式 > Java > 导入 > 通用 > 使用“*”导入的类数:

IntelliJ IDEA:

  • 1213:

    文件 > 设置... > 代码样式 > Java > 导入 > 在通用区域中为使用“*”导入的类数:添加一个大数字。 文件 > 设置... > 代码样式 > Java > 导入 > 通用 > 使用“*”导入的类数:

    P.S.:Java在路径中位于代码样式之后。


6
有没有办法告诉Intellij 15永远不要使用星号导入?我的意思是不指定类数量的情况下是否可以实现?! - Stephen Hartley
1
这正是我所怀疑的 - 但似乎很奇怪! - Stephen Hartley
这真是让人发疯。我喜欢星号导入。再说一遍,有什么缺点吗?真的。(不是在某些假设存在重叠名称的情况下。) - MarkHu
5
当有人在集成开发环境之外(例如在Github上)查看您的代码时,确定一个类是来自哪个包变得非常困难。 - Gili

4

同时,您还需要从“要与*一起使用import的软件包”列表框中删除软件包名称,该列表框位于“要与类计数一起使用import”的文本框正下方。 我认为默认情况下已经包含了Swing和AWT。即使我将类计数设置为999,我仍然添加了import javax.swing. ; 然后我使用减号按钮从框中删除了Swing和Awt,然后它就可以工作了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接