默认从 sun 导入而不是 intelliJ 中的 java 包

Default imports from sun instead of java package in intelliJ

我当前的系统(MacOS 10.10.5)配置是:

IntelliJ IDEA 2017.2.2
#Built on 9August,2017

java version "9"
Java(TM) SE Runtime Environment (build 9+181)

每次我开始做一个项目(目前是 1.8.0_65)并使用

写一个 class
List<String> example = new ArrayList<>(); 

=> 如果我单击 List 的自动建议提示 => 导入 class

引入的默认导入语句是

import com.sun.tools.javac.util.List;

虽然我希望它是:

import java.util.List;

是否有任何我可以纠正的配置,或者这是我使用的组合中的一些错误?想知道哪些设置优先于 sun 包而不是 java 包?

注意 :已经完成了 的答案,但是我输入 [=15 时得到的选项=] 在我的例子中不包括来自 java.util 的那个。

Edit : java.util.List 的导入没有丢失,我可以手动导入它。

我不认为有这样的选择来选择一个包而不是另一个包来导入 类。

相反,您可以从自动导入中排除 com.sun.tools.javac.util.List。为此,请在 Class to Import window 中单击右侧的箭头,然后单击 Exclude com.sun... from auto-import

之后,java.util.List应该是import的首选。如果稍后您需要删除一些排除的导入,您可以转到 PreferencesEditorGeneral自动导入 以找到它们。

我遇到了这样的问题,java.util.Arrays 没有出现在完成列表中。原来我以某种方式将它添加到导入和完成排除列表中。我的手指一定在某个时候滑入了快速操作弹出窗口。

也许同样的事情发生在你身上。打开您的设置对话框并在此处找到您的方式:

然后,查找排除的进口清单:

查看 java.util.List 是否出现在该列表中,如果出现,将其删除。

排除 java.util.List 后,com.sun.tools.javac.util.List 可能是您的 class 路径中唯一的其他 List 类型。如果启用了 "Add unambiguous imports on the fly" 选项,IntelliJ 会在不询问的情况下导入 sun class。