2012-10-28 125 views
0

爲什麼每次,每個人都導入(或者這是不是進口)導入數據庫驅動程序

Class.forName("com.mysql.jdbc.Driver").newInstance(); 

當我

import com.mysql.jdbc.Driver; 

它顯示通知

他導入com.mysql .jdbc.Driver永不使用

這兩個之間有什麼不同?

回答

3

當你實際上不知道哪個類需要加載時,你需要使用工廠方法。
在你的情況下,它是一個數據庫驅動類的Class.forName
這是JVM加載類的運行時指令,因此在這種情況下不需要import ...語句。

如果您使用import ...某個特定的類,Java編譯器會在正在編譯的類中使用它之前嘗試查找並加載它。在你的例子中,當你導入一個類並且永遠不會在你的代碼中使用它時,通常IDE就像你正在編寫代碼的MyEclipse一樣,你會被通知導入的類從未被使用過。這不是錯誤或警告,但可以安全地移除以減輕編譯器的負擔。

2

使用Class.forName時不需要導入,因爲它使用Reflection

相關問題