我有以下类BallotPaper,它在LinkedList中记录一组投票:
import java.util.LinkedList;
public class BallotPaper {
private LinkedList<String> votes;
public BallotPaper() {
}
public void addVote(String candidateName) {
votes.add(candidateName);
}
public LinkedList<String> getVotes() {
return votes;
}
}
我有一个包含投票列表的文本文件,如下所示:
John Jack James Fred
John Jack James Fred
Fred Jack John James
Fred Jack John James
Jack John James Fred
在我的主类中,我有一个BallotPaper对象的ArrayList。文本文件中的每一行都会泄露四个名称,每个名称都需要添加到一个BallotPaper对象中,然后存储在ArrayList中。这是我读取文本文件的代码:
private ArrayList<BallotPaper> votes = new ArrayList<>();
public void readTextFile(String fileLocation) throws FileNotFoundException {
FileInputStream fileIn = new FileInputStream(fileLocation);
Scanner scanner = new Scanner(fileIn);
while(scanner.hasNextLine()) {
votes.add(new BallotPaper());
for(int i=0; i<4; i++) {
String name = scanner.next().trim();
if(!name.equals("")) {
votes.get(votes.size() - 1).addVote(name);
}
}
}
}
所以我的目标是让ArrayList包含5个元素,每个元素都是BallotPaper对象,各自的LinkedList中有4个条目。我目前收到以下错误:
Exception in thread "main" java.lang.NullPointerException
at BallotPaper.addVote(BallotPaper.java:12)
at Model.readTextFile(AVSModel.java:50)
答案 0 :(得分:1)
你还没有把你的选票列表贬低。更改行
private LinkedList<String> votes;
到
private LinkedList<String> votes = new LinkedList<String>();