小编use*_*421的帖子

在创建添加到ArrayList的方法时获取NullPointerException

这是我的代码:

private ArrayList<Integer> gradeList;  

public void addGrades(Scanner reader) {
        int grade = reader.nextInt();
        if (grade != -1) {
            this.gradeList.add(grade); // --> NullPointerException
        }
    }
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚为什么我会得到一个NullPointerException,因为我已经制作了这样的方法,经常没有这个问题.我想把它改成这个:

 public void addGrades(Scanner reader) {
        int grade = Integer.parseInt(reader.nextLine());
        while (true) {
            if (grade == -1) {
                break;
            } else {
                this.gradeList.add(grade); // --> NullPointerException
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

会有所帮助,但它没有解决问题.在这两种情况下,问题都在线上this.gradeList.add(grade).我也尝试在循环之前声明ArrayList在方法中为null,但意识到这是多余的.所以我不确定我做错了什么.

java arraylist nullpointerexception

0
推荐指数
1
解决办法
72
查看次数

java.lang.OutOfMemoryError:Java堆空间.从尝试将扫描仪输入值添加到ArrayList

不知道为什么我得到这个奇怪的错误,但是程序也没有编译,所以我为扫描器制作的while循环一定有问题.我从未见过这个特别的错误.

private ArrayList gradeList;

public GradeDistribution() {
   this.gradeList = new ArrayList<Integer>();
}

public void addGrades(Scanner reader) {
    int grade = Integer.parseInt(reader.nextLine());
    while (true) {
        if (grade == -1) {
            this.printGrades();
            break;
        } else {
            this.gradeList.add(grade); //the error points to this line
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我没有包含printGrades()方法,但我向你保证它不是问题的根源.我不知道我做错了什么,因为一切看起来都应该有效.ArrayList已初始化,所以我知道它不是......

java arraylist out-of-memory

0
推荐指数
1
解决办法
512
查看次数