使用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…