使用import java.util.*是否不可取?

使用import java.util.*是否不可取?,java,import,Java,Import,正在使用 import java.util.* 与调用特定包相比不有利?我想知道,如果一个程序调用所有包,而不是具体列出这些包,那么效率是否会显著降低,例如: import java.util.Scanner; import java.util.Math; 等等。我正在准备面试,希望确保我有良好的编码实践。导入*的问题是它增加了命名冲突的机会 让我们假设在您的程序中,有一个名为EventListener的类,因为java.util也有一个名为EventListener的类,这正是您需要

正在使用

 import java.util.*
与调用特定包相比不有利?我想知道,如果一个程序调用所有包,而不是具体列出这些包,那么效率是否会显著降低,例如:

 import java.util.Scanner;
 import java.util.Math;

等等。我正在准备面试,希望确保我有良好的编码实践。

导入*的问题是它增加了命名冲突的机会

让我们假设在您的程序中,有一个名为
EventListener
的类,因为
java.util
也有一个名为
EventListener
的类,这正是您需要处理一些冲突的方式,但在这种情况下,您甚至不关心
java.util.EventListener


这确实可以避免,只需不导入*而只导入真正需要的特定类。

@PeterPeiGuo是正确的,除此之外,我想说我不使用import xxx.xx.*,因为作为一名开发人员,您需要知道应该使用哪个类,而不应该使用哪个类。您需要了解代码/应用程序的所有内容。因此,在我看来,导入xxx.xx.xxx更好。

这是否回答了您的问题:?是的。非常感谢。我想知道面试官是否不知道我在使用import java.util.*?(因为我可能要处理一个小程序)如果你打算在纸上写代码,那么我会说使用通配符
*
是可以的(你可以在
*
中的每一个旁边留下注释,说明你将使用这个包中的哪些类来显示与其他
*
没有冲突),如果您能够使用IDE,则更喜欢显式导入(Eclipse可以使用
Ctrl
+
Shift
+
O
)为您组织它们)。谢谢。我有时会遇到麻烦,因为我导入了带有星号的
java.awt
java.util
包,然后试图使用
java.util
包的
List
接口,忘记了
List
类存在于
java.awt
包中。编译器无法判断您是要从一个包还是从另一个包使用类/接口。@TNT在这种情况下,在
*
通配符旁边,您可以添加要使用的
列表的显式导入,如
导入java.awt.*;导入java.util.*;导入java.util.List(上次导入将让编译器确定应该使用哪个包
列表
。@Pshemo这是一个很好的观点。在这些情况下,我通常只是将包名放在类名前面,即
java.util.List List…