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