簡體   English   中英

類變量的空指針異常

[英]null pointer exception on class variable

我遇到一個奇怪的錯誤,我正在使用創建的變量,但是隨后出現了Null Pointer Exception Error。 這是我的代碼:

public class ReadXMLFile {
// Initialize logger
private 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.NullPointerException
at 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。

在此先感謝您的幫助!

V.

您不能在NULL值上調用方法。

你設置好了

File configXmlFile = new File("");

然后重新分配值

configXmlFile = LanguageHandler.source;

您已經確認LanguageHandler.source為空,因此configXmlFile現在也為空。

如果期望有效的對象,請在LanguageHandler.source繼續搜索問題。

根據您的代碼和注釋, System.out.println(LanguageHandler.source); //null System.out.println(LanguageHandler.source); //null ,這意味着LanguageHandler.source實際上為null 然后在configXmlFile = LanguageHandler.source;分配此值時configXmlFile = LanguageHandler.source; 您的屬性configXmlFile也具有null值。 當您對null引用調用方法時,會得到NPE。 因此,您需要檢查代碼以正確初始化LanguageHandler.source變量。

您正在對一個對象調用對象方法isFile(),該方法為null。

您分配

configXmlFile = LanguageHandler.source;

在上一行中,您將看到

System.out.println(LanguageHandler.source);

一片空白。 因此,configXmlFile也為null,因為您為它分配了對LanguageHandler.source的引用。 因此,configXmlFile.isFile()會導致NullPointerException。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM