Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
写入XML文件时出现奇怪的Java空指针异常_Java_Nullpointerexception - Fatal编程技术网

写入XML文件时出现奇怪的Java空指针异常

写入XML文件时出现奇怪的Java空指针异常,java,nullpointerexception,Java,Nullpointerexception,我编写了一段代码,根据本页的教程将所有电影从数组列表写入XML文件 以下是在存储库中编写的代码: public void writeMoviesToXML() { System.out.println("NULL"); try{ DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder dBuilder = dbFact

我编写了一段代码,根据本页的教程将所有电影从数组列表写入XML文件

以下是在存储库中编写的代码:

    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();