简体   繁体   中英

Default imports from sun instead of java package in intelliJ

My current system(MacOS 10.10.5) configuration is :

 IntelliJ IDEA 2017.2.2 #Built on 9August,2017 java version "9" Java(TM) SE Runtime Environment (build 9+181)

Every time I start working on a project(currently 1.8.0_65) and write a class using

List<String> example = new ArrayList<>(); 

=> If I click on the auto suggested tip for List => Import class

The default import statement introduced is

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

while I expect it to be :

import java.util.List;

Is there any configuration that I can redress or is this some bug in the combinations I am using? Would want to know what settings has given preference to sun package over the java package?

Note : Have gone through the answer of Any way (or shortcut) to auto import the classes in IntelliJ IDEA like in Eclipse? but the options that I get when I type List doesn't include the one from java.util in my case.

Edit : The import for java.util.List is not missing, I am able to import the same manually.

I had an issue like this with java.util.Arrays not showing up in completion lists. Turns out I had somehow added it to the import and completion exclusion list. My finger must have slipped in a quick action popup at some point.

Maybe the same thing happened to you. Open your Settings dialog and find your way here:

设置 > 编辑器 > 常规 > 自动导入

Then, look for this list of Excluded imports:

从导入和完成中排除

See if java.util.List shows up in that list, and if so, remove it.

With java.util.List excluded, com.sun.tools.javac.util.List might be the only other List type in your class path. If you have the "Add unambiguous imports on the fly" option enabled, IntelliJ would then import the sun class without even asking.

I don't think there is such option to prefer a package over another for importing classes.

Instead, you could exclude com.sun.tools.javac.util.List from auto import. To do so, in Class to Import window, click on the arrow on the right, then Exclude com.sun... from auto-import : 排除自动导入弹出窗口

After that, java.util.List should be the first choice of import. If later you need to remove some excluded imports, you can go to PreferencesEditorGeneralAuto Import to find them.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM