为了账号安全,请及时绑定邮箱和手机立即绑定

类变量上的空指针异常

类变量上的空指针异常

手掌心 2021-08-19 18:49:28
我有一个奇怪的错误,我使用了一个我创建的变量,但随后我产生了一个空指针异常错误。这是我的代码: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。


查看完整回答
反对 回复 2021-08-19
?
DIEA

TA贡献1820条经验 获得超2个赞

您不能对 NULL 值调用方法。

你设置

File configXmlFile = new File("");

然后重新赋值

configXmlFile = LanguageHandler.source;

你已经确认它LanguageHandler.source是空的,所以configXmlFile现在也是空的。

如果您期望一个有效的对象,请继续在 中搜索问题LanguageHandler.source


查看完整回答
反对 回复 2021-08-19
?
BIG阳

TA贡献1859条经验 获得超6个赞

根据您的代码和注释System.out.println(LanguageHandler.source); //null,这意味着LanguageHandler.source实际上是null. 当你再分配这个值时,configXmlFile = LanguageHandler.source;你的属性configXmlFile也有null值。当你在null引用上调用方法时,你会得到 NPE。因此,您需要检查代码以正确初始化LanguageHandler.source变量。

查看完整回答
反对 回复 2021-08-19
  • 3 回答
  • 0 关注
  • 138 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信