Class.forName(strClassName)只是返回strClassName的Class,
但是类装载器还是要装载该类,于是strClassName里的static部块都要执行,但没生成实例。
而Class.forName(strClassName).newInstance()
就相当于new strClassName();//strClassName()要改成你那个Class所对应的类。
那个所说的不写有一个例子:
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
因为只须执行SQLServerDriver中的静态方法,所以没必要生成实例。
但是类装载器还是要装载该类,于是strClassName里的static部块都要执行,但没生成实例。
而Class.forName(strClassName).newInstance()
就相当于new strClassName();//strClassName()要改成你那个Class所对应的类。
那个所说的不写有一个例子:
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
因为只须执行SQLServerDriver中的静态方法,所以没必要生成实例。
解决方案 »
- ObjectInputStream 有问题
- struts问题 <html:hidden property="worklistStr" value="<bean:write name='worklistId'/>" />问题:谢谢...
- 利用正则表达式删除中括号
- 求教一个复杂算法,高手请进
- 问:main()函数中的args[]数组在何时能用上?有什么作用?
- 大哥看看
- IO中有没有得到一个文件总行数的方法?
- 帮我看一看下面的这个错误是什么原因?
- JNI中汉字问题。。。
- 搞不明白?
- socket问题,客户端socket = new Socket( host, port );中的参数host,是客户机ip还是服务器ip?
- java/jsp中如何实现类似FileSystemObject这样的功能,给个思路就行。
如sun.jdbc.odbc.JdbcOdbcDriver类static 中的内容
也就是Class.ForName("sun.jdbc.odbc.JdbcOdbcDriver");所执行的部分
static
{
if(JdbcOdbcObject.isTracing())
JdbcOdbcObject.trace("JdbcOdbcDriver class loaded");
JdbcOdbcDriver jdbcodbcdriver = new JdbcOdbcDriver();
try
{
DriverManager.registerDriver(jdbcodbcdriver);
}
catch(SQLException sqlexception)
{
if(JdbcOdbcObject.isTracing())
JdbcOdbcObject.trace("Unable to register driver");
}
}