关于()函数出现异常
出现这个错误的时候网上查了好久的博客,这里直接把解决过程记录下来
很多大牛说了关于forname这个类的解释,需要可以去查。以我遇到的情况为例,代码基本来源于书上,但是最后出现这个错误。书毕竟不一定完全正确,偶尔犯的小错误可以容忍
贴出代码:
package test81;
//配置文件处理类
import .*;
import org..*;
import .*;
import ;
import ;
public class XmlUtil {
public static Object getBean(){
try{
DocumentBuilderFactory dFactory = ();
DocumentBuilder builder = ();
Document doc;
doc = (new File(""));
NodeList nl = ("classname");
Node classNode = (0).getFirstChild();
String cName = ();
//(cName);
Class c=(cName);
Object obj=();
return obj;
}
catch(Exception e){
();
return null;
}
}
}
然后注意两个地方:
1、doc = (new File(“”));
2、Class c=(cName);
第一个可以用绝对路径也可以用相对路径,关键在于第二点如果我们需要返回得到的是一个字符串就可行,但是如果需要返回的是一个类这样写就会出现如上错误。这里将其换成如下:
2、Class c=(“test81.”+cName);
引号内为本类所在的包名,别忘记后面的小黑点,因为我们在客户端测试时如果需要获取的是一个类,就需要这样的方式,如下客户端代码:
//客户端测试类
public class Client {
public static void main(String[] args)
{
//Dog dog;
Robot robot;
robot=(Robot)();
();
}
}
只要2正确了,那么1的路径其实不会影响运行。这是()函数的用法决定的。