首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在java中导入特定的包还是带通配符的整棵树更好?

在java中导入特定的包还是带通配符的整棵树更好?
EN

Stack Overflow用户
提问于 2011-06-08 14:24:04
回答 5查看 2K关注 0票数 9

可能重复:

Why is using a wild card with a Java import statement bad?

现在,我正在使用大量的java.util包:

代码语言:javascript
运行
复制
import java.util.Calendar;
import java.util.logging.ConsoleHandler;
import java.util.logging.Level;
import java.util.logging.LogRecord;
import java.util.logging.Logger;

这样做是否更有效率:

代码语言:javascript
运行
复制
import java.util.*;

这样做的绩效/效率成本是多少?这有关系吗?请原谅我在这个问题上的无知。

而且,这只是一次黑暗的尝试,但是有什么方法可以导入整个项目的包吗?这样我就不需要按等级再进口了?这是我的第一个大型Java项目,所以我仍然在学习更多的企业方面的东西。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-06-08 14:33:56

另外,您不能包括整棵树。您可以将您的进口列表减少到

代码语言:javascript
运行
复制
import java.util.Calendar;
import java.util.logging.*;

代码语言:javascript
运行
复制
import java.util.*;

不导入java.util.logging包中的任何内容。对于Java编译器,没有子包。也不适用于VM (除了一些使用包结构作为文件目录结构的类加载器之外)。

此外,您似乎正在混合概念包和类/接口(或类型)。java.utiljava.util.logging是包,而java.util.Calendarjava.util.logging.Level等是类。

类型(类/接口)是您可以在程序中使用的东西,而包主要是放置类和接口的名称空间。(此外,它还会对能见度产生一些影响。)

您可以导入单个类型(通过指定它们的名称),也可以在包中直接导入所有类型(通过指定包和.*)。(您还可以使用通配符导入类型中的所有嵌套类型,也可以使用import static <class>.*导入类的所有静态方法/字段,这仅仅是为了完整性)。

导入从来不是递归的,通配符导入只用于一个级别。(您也不能使用import java.util.*.*导入日志类。)

票数 5
EN

Stack Overflow用户

发布于 2011-06-08 14:27:18

导入细节是很好的做法。Eclipse不需要您做任何工作就可以这样做--只需使用“组织导入”(按ctrl+shift+o窗口或cmd+shift+o mac)即可。

原因是,在加载哪些类时,不会有任何混淆。

票数 7
EN

Stack Overflow用户

发布于 2011-06-08 14:27:33

导入通配符包可能会稍微减慢编译速度,但不会影响运行代码的后续性能。

不过,最好只导入您想要的类。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6280306

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档