为什么每次每个人都导入(或者这不是导入)
Class.forName("com.mysql.jdbc.Driver").newInstance();
当我
import com.mysql.jdbc.Driver;
显示通知
他从不使用导入com.mysql.jdbc.Driver
这两者有什么不同?
答案 0 :(得分:3)
如果您实际上并不知道必须加载哪个类,那么请选择工厂方法
在您的情况下,它是数据库驱动程序类的Class.forName
它是JVM加载类的运行时指令,因此在这种情况下不需要import ...
语句。
如果您使用import ...
特定类,Java编译器会在编译的类中使用它之前尝试查找并加载它。在您的示例中,当您导入类并且从不在代码中使用它时,通常IDE就像您编写代码的MyEclipse一样,您将收到通知,即导入的类从未使用过。它不是错误或警告,但您可以安全地删除以减少编译器的负载。
答案 1 :(得分:2)
使用Class.forName
时不需要导入,因为它使用Reflection。