可能重复:
Why is using a wild card with a Java import statement bad?
现在,我正在使用大量的java.util包:
import java.util.Calendar;
import java.util.logging.ConsoleHandler;
import java.util.logging.Level;
import java.util.logging.LogRecord;
import java.util.logging.Logger;这样做是否更有效率:
import java.util.*;这样做的绩效/效率成本是多少?这有关系吗?请原谅我在这个问题上的无知。
而且,这只是一次黑暗的尝试,但是有什么方法可以导入整个项目的包吗?这样我就不需要按等级再进口了?这是我的第一个大型Java项目,所以我仍然在学习更多的企业方面的东西。
发布于 2011-06-08 14:33:56
另外,您不能包括整棵树。您可以将您的进口列表减少到
import java.util.Calendar;
import java.util.logging.*;但
import java.util.*;不导入java.util.logging包中的任何内容。对于Java编译器,没有子包。也不适用于VM (除了一些使用包结构作为文件目录结构的类加载器之外)。
此外,您似乎正在混合概念包和类/接口(或类型)。java.util和java.util.logging是包,而java.util.Calendar、java.util.logging.Level等是类。
类型(类/接口)是您可以在程序中使用的东西,而包主要是放置类和接口的名称空间。(此外,它还会对能见度产生一些影响。)
您可以导入单个类型(通过指定它们的名称),也可以在包中直接导入所有类型(通过指定包和.*)。(您还可以使用通配符导入类型中的所有嵌套类型,也可以使用import static <class>.*导入类的所有静态方法/字段,这仅仅是为了完整性)。
导入从来不是递归的,通配符导入只用于一个级别。(您也不能使用import java.util.*.*导入日志类。)
发布于 2011-06-08 14:27:18
导入细节是很好的做法。Eclipse不需要您做任何工作就可以这样做--只需使用“组织导入”(按ctrl+shift+o窗口或cmd+shift+o mac)即可。
原因是,在加载哪些类时,不会有任何混淆。
发布于 2011-06-08 14:27:33
导入通配符包可能会稍微减慢编译速度,但不会影响运行代码的后续性能。
不过,最好只导入您想要的类。
https://stackoverflow.com/questions/6280306
复制相似问题