说。 jdbc驱动程序需要Class.forName才能执行类的静态块。
为什么不将其作为类字段运行呢?
最佳答案
保证Class.forName()
在您调用它时初始化该类。您打算怎么做?您能否声明局部变量而不分配它,例如com.foo.Driver d;
?让它成为成员变量呢?您是否需要实际分配?规范说明了如何以及何时必须加载类?您是否真的要考虑一下,或者只是致电Class.forName()
?
在相关说明中,不再需要使用许多JDBC驱动程序来执行此操作。 DriverManager now uses the ServiceLoader mechanism标识并加载符合条件的驱动程序类。
关于java - 为什么Java需要Class.forName或动态加载?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7425244/