解决方法
Import语句仅影响编译期间发生的事情.
编译器接受此代码,并创建一个.class文件,该文件以可执行格式表示您的代码(二进制代码).
让我们看一个简单的案例:
import java.util.*;
VS
import java.util.ArrayList; import java.util.List;
用于:
//... List <String> someList = new ArrayList <String> (); //...
当编译器命中单词List时,在第一种情况下,它需要弄清楚List是否存在于那组类中.在第二种情况下,已经明确地给出了它,因此它更容易.
本质上,发生的事情是编译器必须获取import语句中存在的所有类并跟踪它们的名称,以便在使用它时,编译器可以检索您正在调用的相应函数.
有时,有些类在多个包中具有相同的名称.在这种情况下(Thomas指的是)你不应该使用*来选择目录中的所有类.
最佳做法是明确描述您的类使用情况.