import pacakage.*;
很多人都知道要避免import wildcard,那为什么import all不好呢?也许有人认为,import wildcard会导致import太多不必要的类,会导致类很臃肿或者运行变慢。
其实:
import java.util.Date;
和
import java.util.*;
它们在性能上没有有任何区别,import语句只是告诉compiler在哪里寻找依赖的类。编译成的class文件中是没有import语句的,例如下面的class文件:
或者可以说import是个语法糖,如果没有import语句,就要在每个使用到的外部类(同包里的除外)前面加上package路径。
javax.swing.JButton but = new javax.swing.JButton();
为什么不用import wildcard
防止类冲突。项目中可能有重名的类,不同工具包也有重名类,例如下面两个包都包含Date,此时编译器会报错。
Google Java代码规范中,要明确import使用的类,避免import wildcard。
但是我在Clean Code书的17.5章节看到,作者说建议使用import wildcard。理由是:过长的导入清单让读者望而却步,不想让80行的导入语句搞乱代码顶部,import wildcard会让类简洁。这个观点我不太认同,IDE会自动把impor语句t收缩成一行,而且在Eclipse中,ctrl + shift + O可以自动导入需要的类。
test