在Java开发特别是数据库开发中,经常会用到Class.forName(
)这个方法。通过查询Java Documentation我们会发现使用Class.forName( )静态方法的目的是为了动态加载类。在加载完成后,一般还要调用Class下的newInstance( )静态方法来实例化对象以便操作。因此,单单使用Class.forName( )是动态加载类是没有用的,其最终目的是为了实例化对象。
贴出Proxool 连接池的静态初始化方法:
public class ProxoolDriver implements Driver {
private static final Log LOG = LogFactory.getLog(ProxoolDriver.class);
static {
try {
DriverManager.registerDriver(new ProxoolDriver());
} catch (SQLException e) {
System.out.println(e.toString());
}
}
private static final Log LOG = LogFactory.getLog(ProxoolDriver.class);
static {
try {
DriverManager.registerDriver(new ProxoolDriver());
} catch (SQLException e) {
System.out.println(e.toString());
}
}
}
本文探讨了Java中使用Class.forName()方法动态加载类,并解释了与newInstance()方法的区别。重点分析了在数据库开发中加载驱动类时为何有时仅使用Class.forName()而无需newInstance()的原因。
390

被折叠的 条评论
为什么被折叠?



