NullPointerException的解释

时间:2014-11-07 01:31:54

标签: java arrays nullpointerexception double java.util.scanner

首先,我在Stackoverflow上研究了我的问题,并找到了关于NullPointerException是什么的答案。但是,我不明白为什么我有NullPointerException

此代码创建一个简单的成绩跟踪计划。以下是数据字段:

private String name;
private double[] testScores; //relevant to question  
private int x = 0;
private String answer;
private double testAverage;
private double tScore;//Relevant to question

因此,当Exception对象调用此方法时,我发生了Student。在方法定义中使用数组注释掉该行后,Exception停止显示。我用double tScore替换了数组,程序开始正常工作。我不明白为什么使用数组给了我NullPointerException。请帮助我,我对此问题感到困惑。我试图搞清楚,但不明白为什么会这样。谢谢你的帮助。

public void inputGrades()
  {
       Scanner gradeRead = new Scanner(System.in);
       System.out.println("Please Enter Student Grades.");

       do
       { 
           //testScores[x] = gradeRead.nextDouble(); ---Problem Line---
           tScore = (gradeRead.nextDouble());
           System.out.println("Are There Any More Grades? Enter y or n");
           answer = gradeRead.next();
           x++;
       }
       while(answer.equalsIgnoreCase("Y"));
  }

1 个答案:

答案 0 :(得分:3)

您刚刚声明了数组,并且从未如此处所述初始化它:

private double[] testScores; //relevant to question  

您需要在访问其元素之前对其进行初始化。类似的东西:

   testScores = new double[SIZE_YOU_DESIRE];