写入XML文件时出现奇怪的Java空指针异常
我编写了一段代码,根据本页的教程将所有电影从数组列表写入XML文件 以下是在存储库中编写的代码:写入XML文件时出现奇怪的Java空指针异常,java,nullpointerexception,Java,Nullpointerexception,我编写了一段代码,根据本页的教程将所有电影从数组列表写入XML文件 以下是在存储库中编写的代码: public void writeMoviesToXML() { System.out.println("NULL"); try{ DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder dBuilder = dbFact
public void writeMoviesToXML()
{
System.out.println("NULL");
try{
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.newDocument();
Element rootElement = doc.createElement("repo");
doc.appendChild(rootElement);
Element movie = doc.createElement("movie");
rootElement.appendChild(movie);
for (int i=0; i<movieMap.getMovieMap().size(); i++)
{
Attr attr1 = doc.createAttribute("title");
attr1.setValue(movieMap.getMovieMap().get(i).getTitle());
Attr attr2 = doc.createAttribute("rentTimes");
if(movieMap.getMovieMap().get(i).getRentTimes() == null)
System.out.println("NULL");
attr2.setValue(movieMap.getMovieMap().get(i).getRentTimes().toString());
}
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
DOMSource source = new DOMSource(doc);
StreamResult result = new StreamResult(new File("C:\\Users\\ruspauladrian\\Desktop\\Lab2_4\\movies.xml"));
transformer.transform(source, result);
StreamResult consoleResult = new StreamResult(System.out);
transformer.transform(source, consoleResult);
} catch (Exception e)
{
e.printStackTrace();
}
}
代码位于程序的末尾(因此称为“再见”)。我希望程序仅在保存更改后关闭。我在第一个代码部分尝试用“NULL”println调试它,但它从来没有看到它,所以我不知道为什么这段代码在没有实际输入函数的情况下会产生问题
以下是存储库中使用的导入(如果有帮助):
import dataStructures.MovieMap;
import dataStructures.PeopleList;
import domain.Movie;
import org.w3c.dom.*;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import java.io.File;
似乎存储库为空, 您是先初始化存储库的吗
Repository repository = new Repository();
repository.writeMoviesToXML();
您还可以将writeMoviesToXML方法设为静态并指向该类
Repository.writeMoviesToXML();
您的
存储库
为null
。请包括堆栈跟踪和repository.writeMoviesToXML()周围的代码代码>。很有趣。我的队友编写了UI部分,他还在其中初始化了控制器和存储库。我知道应该在哪里初始化存储库,现在已经修复了。非常感谢。
Repository.writeMoviesToXML();