gpt4 book ai didi

java - 读取文件,将内容存储到一个对象中,将对象存储到ArrayList中导致java.lang.NullPointerException

转载 作者:行者123 更新时间:2023-11-29 05:20:13 25 4
gpt4 key购买 nike

我很难找出我的代码有什么问题。我一直忙于阅读其他有关 NullPointerExceptions 的主题,并试图通过使用调试器找出它,但我找不到一个好的视频来展示如何使用调试器,所以我有点想不通。

我正在使用 Netbeans,这是从错误输出中取出的:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at tibianic.spy.system.FileHandler.addVipToList(FileHandler.java:81)
at tibianic.spy.system.FileHandler.loadVipList(FileHandler.java:65)
at tibianic.spy.system.FileHandler.<init>(FileHandler.java:27)

我假设问题出在 FileHandler 类 - loadVipList/addVipToList 方法中。

类(class):

package spy.system;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
*
* @author unknown
*/
public class FileHandler {
ArrayList<Vip> vip;

public FileHandler() {
this.loadVipList();
}

public void setVipList(ArrayList<Vip> newList) {
this.vip = newList;
}

public ArrayList<Vip> getVipList() {
return this.vip;
}

public void saveVipList() {
String line;
try {
FileWriter fWriter = new FileWriter("vip.txt");
BufferedWriter bWriter = new BufferedWriter(fWriter);

for (Vip v : vip) {
line = v.getName() + ":" + v.getNote();
bWriter.write(line);
}

bWriter.close();
fWriter.close();
} catch (IOException ex) {
Logger.getLogger(FileHandler.class.getName()).log(Level.SEVERE, null, ex);
}
}

public void loadVipList() {
String line;
String[] person;
try {
FileReader fReader = new FileReader("vip.txt");
BufferedReader bReader = new BufferedReader(fReader);

while ((line = bReader.readLine()) != null) {
person = line.split(":");
addVipToList(person[0],person[1]);
}

bReader.close();
fReader.close();

} catch (FileNotFoundException ex) {
Logger.getLogger(FileHandler.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(FileHandler.class.getName()).log(Level.SEVERE, null, ex);
}

}

private void addVipToList(String name, String note) {
Vip guy = new Vip(name,note);
vip.add(guy);
}

据我了解,当我将值为 null 的对象赋予方法时,会出现 NullPointerException,对吗?我认为有一个非常小的错误我无法找到,因为我真的不知道错误消息试图告诉我什么 -

我确实删除了一个标题注释,所以这些行可能不准确。

提前致谢

最佳答案

您的异常说明您的错误位于 tibianic.spy.system.FileHandler.addVipToList(FileHandler.java:81)

并根据您的代码将其抛出到以下方法中。

private void addVipToList(String name, String note) {
Vip guy = new Vip(name,note);
vip.add(guy);
}

注意你有

public void setVipList(ArrayList<Vip> newList) {
this.vip = newList;
}

在调用 addVipToList() 之前,您需要先调用 setVipList(),因为没有它,列表 vip 仍然是 null

关于java - 读取文件,将内容存储到一个对象中,将对象存储到ArrayList中导致java.lang.NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25129873/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com