2015-03-02 26 views
0

在我看到的有关Java的一些资源中,他们表示在Java中的导入语句中使用*并不好。例如import java.io.*为什么在Java导入语句中使用*很不好?

我想知道为什么这被认为是不好的做法。仅仅是因为它让其他程序员很难确切地知道您在java.io包下使用的是什么类,或者是否有其他原因?

回答

-3

因为Java.io. *会导入整个IO类。这意味着程序将加载它不需要的组件。

+0

没有不必要的加载。一个类在使用时将被加载,而导入不会被视为使用情况。 – Kayaman 2015-03-02 14:41:50

+1

这都是关于歧义。 'javax.swing'和'java.util'都有一个'Timer'类。如果您使用通配符导入了这两个包,然后使用'Timer'尝试,您的程序将不知道使用哪一个 – 2015-03-02 14:43:30

+1

“*因为Java.io. *导入了整个IO类。*”,首先,不是类,而是包。第二件事是它不会导入整个软件包(无论你是什么意思)。你需要知道,在编译过程中,类的简单名称(比如'String','InputStream')需要被全限定名替换(比如'java.lang.String','java.io.InputStream')所以在运行时JVM会知道哪些类需要加载。 'import'提供了查找这些全名的可能位置列表。 – Pshemo 2015-03-02 14:52:53

相关问题