【问题标题】:Default imports from sun instead of java package in intelliJ从 sun 而不是 intelliJ 中的 java 包的默认导入
【发布时间】:2018-02-11 06:13:21
【问题描述】:

我目前的系统(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)并使用

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

=> 如果我点击 List 的自动提示提示 => 导入类

引入的默认导入语句是

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

虽然我希望它是:

import java.util.List;

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

注意:已经查看了Any way (or shortcut) to auto import the classes in IntelliJ IDEA like in Eclipse? 的答案,但是我输入List 时得到的选项不包括来自java.util 的选项就我而言。

编辑java.util.List 的导入没有丢失,我可以手动导入。

【问题讨论】:

    标签: java intellij-idea intellij-idea2017


    【解决方案1】:

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

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

    然后,查找排除的导入列表:

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

    在排除 java.util.List 的情况下,com.sun.tools.javac.util.List 可能是您的类路径中唯一的其他 List 类型。如果您启用了“即时添加明确的导入”选项,IntelliJ 将无需询问即可导入 sun 类。

    【讨论】:

    • 当您没有意识到只需按几下按钮和单击鼠标而发生的变化时,有时会非常痛苦。感谢您对此进行调试。
    【解决方案2】:

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

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

    之后,java.util.List 应该是导入的首选。如果以后您需要删除一些排除的导入,您可以转到 PreferencesEditorGeneralAuto Import找到他们。

    【讨论】:

    • java.util.List 应该是导入的首选。 我现在担心的是它甚至不是一个选择。无论如何,我不想降低 sun 包导入的优先级。
    • 也许尝试取消选中自动导入设置中的Add unambiguous imports on the fly选项?
    • java.util.List JDK 中唯一缺少的导入吗?你有Optional 还是Double
    • 它不是缺少导入,我仍然可以手动将其添加到导入中。将在问题中添加此信息
    • @nullpointer Settings > Editor > General > Auto Import,然后在“Java”部分查找标题为“Exclude from Import and Completion”的列表。
    猜你喜欢
    • 1970-01-01
    • 2023-04-11
    • 2020-08-22
    • 2015-11-14
    • 2021-03-23
    • 2011-01-12
    • 2011-01-03
    相关资源
    最近更新 更多