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