0

为什么每次,每个人都导入(或者这不是导入)

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

当我

import com.mysql.jdbc.Driver;

显示通知

他从未使用过 import com.mysql.jdbc.Driver

这两者有什么区别??

4

2 回答 2

3

当您实际上不知道必须加载哪个类时,您可以使用工厂方法。
在您的情况下,它Class.forName位于数据库驱动程序类上。
加载类是 JVM 的运行时指令,因此import ...在这种情况下不需要该语句。

就像您使用import ...特定的类一样,Java 编译器会尝试在正在编译的类中使用它之前找到并加载它。在您的示例情况下,当您导入一个类并且从未在代码中使用它时,通常是您正在编写代码的 IDE,例如 MyEclipse,您将被通知导入的类从未使用过。这不是错误或警告,但您可以安全地删除以减少编译器的负载。

于 2012-10-28T14:33:53.127 回答
2

使用时不需要导入Class.forName,因为它使用反射

于 2012-10-28T14:25:36.850 回答