2015-03-02 95 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

相關問題