爲什麼每次,每個人都導入(或者這是不是進口)導入數據庫驅動程序
Class.forName("com.mysql.jdbc.Driver").newInstance();
當我
import com.mysql.jdbc.Driver;
它顯示通知
他導入com.mysql .jdbc.Driver永不使用
這兩個之間有什麼不同?
爲什麼每次,每個人都導入(或者這是不是進口)導入數據庫驅動程序
Class.forName("com.mysql.jdbc.Driver").newInstance();
當我
import com.mysql.jdbc.Driver;
它顯示通知
他導入com.mysql .jdbc.Driver永不使用
這兩個之間有什麼不同?
當你實際上不知道哪個類需要加載時,你需要使用工廠方法。
在你的情況下,它是一個數據庫驅動類的Class.forName
。
這是JVM加載類的運行時指令,因此在這種情況下不需要import ...
語句。
如果您使用import ...
某個特定的類,Java編譯器會在正在編譯的類中使用它之前嘗試查找並加載它。在你的例子中,當你導入一個類並且永遠不會在你的代碼中使用它時,通常IDE就像你正在編寫代碼的MyEclipse一樣,你會被通知導入的類從未被使用過。這不是錯誤或警告,但可以安全地移除以減輕編譯器的負擔。
使用Class.forName
時不需要導入,因爲它使用Reflection。