DocumentBuilderFactory dFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = dFactory.newDocumentBuilder();
Document doc;
doc = builder.parse(new File("src/bridge/config.xml"));
NodeList nl = doc.getElementsByTagName("className");
Node classNode = null;
if (args.equals("color"))
{
classNode = nl.item(0).getFirstChild();
}
else if (args.equals("bag"))
{
classNode = nl.item(1).getFirstChild();
}
String cName = "bridge."+classNode.getFirstChild().getNodeValue();
Class<?> c = Class.forName(cName);
Object obj = c.newInstance();
XML
<?xml version="1.0" encoding="UTF-8"?>
<config>
<className>Yellow</className>
<className>HandBag</className>
</config>
运行之后就报错了 说classNode = null 求解
main方法的args参数是一个数组,程序进不了if语句,所以是空指针异常了,改为如下:
if (args[0].equals("color"))
{
classNode = nl.item(0).getFirstChild();
}
else if (args[0].equals("bag"))
{
classNode = nl.item(1).getFirstChild();
}
Node classNode = null;
你只是定义了,并没有实例化Node对象。