我有一个奇怪的错误,我使用了一个我创建的变量,但随后我产生了一个空指针异常错误。这是我的代码:public class ReadXMLFile {// Initialize loggerprivate static Logger log = Logger.getLogger(ReadXMLFile.class);public Document getXMLDocument() { Document doc = null; File configXmlFile = new File(""); try { DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory .newInstance(); DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder(); System.out.println(LanguageHandler.source); //null configXmlFile = LanguageHandler.source; System.out.println(LanguageHandler.source); //null System.out.println("conf : " + configXmlFile.isFile()); //Null pointer exception doc = docBuilder.parse(configXmlFile); } catch (Exception e) { e.printStackTrace(); log.error(e.getMessage(), e); } return doc;}}这是错误:java.lang.NullPointerExceptionat in.raster.oviyam.util.ReadXMLFile.getXMLDocument(ReadXMLFile.java:85)at in.raster.oviyam.util.ReadXMLFile.getElementValues(ReadXMLFile.java:99)at in.raster.oviyam.servlet.DicomNodes.doGet(DicomNodes.java:90)at javax.servlet.http.HttpServlet.service(HttpServlet.java:635)at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)ReadXMLFile 类的第 85 行是我的 System.out.println("conf : " + configXmlFile.isFile());我不明白为什么我会遇到这个错误,它应该只返回 false。在此先感谢您的帮助!!
3 回答
神不在的星期二
TA贡献1963条经验 获得超6个赞
您正在一个对象上调用对象方法 isFile(),即为 null。
你分配
configXmlFile = LanguageHandler.source;
在上一行你看到,输出
System.out.println(LanguageHandler.source);
一片空白。因此,configXmlFile 也为空,因为您已将其分配给 LanguageHandler.source 的引用。因此 configXmlFile.isFile() 会导致 NullPointerException。
DIEA
TA贡献1820条经验 获得超2个赞
您不能对 NULL 值调用方法。
你设置
File configXmlFile = new File("");
然后重新赋值
configXmlFile = LanguageHandler.source;
你已经确认它LanguageHandler.source
是空的,所以configXmlFile
现在也是空的。
如果您期望一个有效的对象,请继续在 中搜索问题LanguageHandler.source
。
BIG阳
TA贡献1859条经验 获得超6个赞
根据您的代码和注释System.out.println(LanguageHandler.source); //null
,这意味着LanguageHandler.source
实际上是null
. 当你再分配这个值时,configXmlFile = LanguageHandler.source;
你的属性configXmlFile
也有null
值。当你在null
引用上调用方法时,你会得到 NPE。因此,您需要检查代码以正确初始化LanguageHandler.source
变量。
添加回答
举报
0/150
提交
取消