我正在为我的任务而苦苦挣扎,我不知道如何在列表中添加另一个元素。
import java.util.ArrayList;
public class Ballot {
private ArrayList<Candidate> ballot;
private String officeName;
public Ballot(String officeName) {
this.officeName = officeName;
ArrayList<Candidate> ballot = new ArrayList<Candidate>();
}
public String getOfficeName() {
return officeName;
}
public void addCandidate(Candidate c) {
ballot.add(c);
}
public ArrayList<Candidate> getCandidates() {
return ballot;
}
public static void main(String[] args) {
Ballot b = new Ballot("Election");
b.addCandidate(new Candidate("Sarah", "President"));
System.out.println(b);
}
}
当我尝试运行文档时,它抛出一个
NullPointerException
。我究竟做错了什么? 最佳答案
构造函数初始化一个名为ballot
的局部变量,该变量隐藏具有相同名称的数据成员。然后,当您尝试添加到它时,它会以NullPointerException
失败,因为它从未被初始化。如果初始化它,则应该可以:
public Ballot(String officeName) {
this.officeName = officeName;
ballot = new ArrayList<Candidate>(); // Here!
}