2014-11-07 80 views
0

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

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

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 

所以,当调用该方法的Student对象,我得到的发生Exception。在我用方法定义中的数组注释掉行之后,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")); 
    } 
+0

的ArrayList比数组在这种情况下 – 2014-11-07 01:35:34

+0

@SotiriosDelimanolis究竟发生了什么人更好吗?我已经告诉过你,我做了我的研究,但是我发现这与数组和数据字段无关。帮我一个忙,摆脱重复的标记,以便我可以得到一些答案。 – Ungeheuer 2014-11-07 01:37:26

+0

@fastsnail什么是数组列表?我是一名高中生,也是java的新手。我从来没有听说过一个数据列表。 – Ungeheuer 2014-11-07 01:38:04

回答

3

你刚才宣布的阵列和永远不会初始化它这里提到:

private double[] testScores; //relevant to question 

你需要访问它的元素之前初始化它。喜欢的东西:

testScores = new double[SIZE_YOU_DESIRE];