Java 创建添加到ArrayList的方法时获取NullPointerException
这是我的代码:Java 创建添加到ArrayList的方法时获取NullPointerException,java,arraylist,nullpointerexception,Java,Arraylist,Nullpointerexception,这是我的代码: private ArrayList<Integer> gradeList; public void addGrades(Scanner reader) { int grade = reader.nextInt(); if (grade != -1) { this.gradeList.add(grade); // --> NullPointerException } } 这会有
private ArrayList<Integer> gradeList;
public void addGrades(Scanner reader) {
int grade = reader.nextInt();
if (grade != -1) {
this.gradeList.add(grade); // --> NullPointerException
}
}
这会有帮助,但并没有解决问题。在这两种情况下,问题都出现在
this.gradeList.add(grade)
行上。我还尝试在循环之前的方法中将ArrayList声明为null,但意识到这是多余的。所以我不确定我做错了什么。成绩表
必须是null
。请确保在使用前对其进行初始化
它可以这样初始化:
private ArrayList<Integer> gradeList = new ArrayList<Integer>();
private ArrayList gradeList=new ArrayList();
您永远不会实例化arraylist。试一试
private ArrayList<Integer> gradeList = new ArrayList<Integer>();
private ArrayList gradeList=new ArrayList();
您似乎没有初始化成绩表
要么内联初始化它:
private ArrayList<Integer> gradeList = new ArrayList<Integer>();
private ArrayList gradeList=new ArrayList();
或在构造函数中:
public MyClass() {
gradeList = new ArrayList<Integer>();
// ...
}
publicmyclass(){
等级列表=新的ArrayList();
// ...
}
确保您的阵列列表已初始化
例如,如果实例字段gradeList
作为ArrayList
,请使用:
ArrayList<Integer> gradeList = new ArrayList<Integer>();
ArrayList gradeList=new ArrayList();
。。。在引用它之前 您必须添加已初始化的ArrayList。及
您应该尝试以下操作:
private List gradeList=new ArrayList();
是否已初始化成绩表
您在哪里初始化private ArrayList成绩表;???这很可能是原因,但是private ArrayList gradeList代码>是通过RKC的编辑添加到OP的代码中的…好吧-我会更新我的答案以反映OP问题的更改我是个白痴。我在构造函数中初始化了ArrayList,并修复了它。但我现在得到了一个不同的错误,一个“OutOfMemoryError”,仍然指向同一行。我的循环或扫描仪有问题吗?你的while(true)
循环看起来可疑。您正在从扫描仪读取输入,然后将其永久添加到arraylist中
ArrayList<Integer> gradeList = new ArrayList<Integer>();
private List<Integer> gradeList = new ArrayList<Integer>();