[英]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.