【发布时间】:2014-11-07 01:31:54
【问题描述】:
首先,我在 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"));
}
【问题讨论】:
-
在这种情况下,arraylist 比 array 更好
-
@SotiriosDelimanolis 到底是什么人?我已经告诉过你我做了我的研究,但我发现毫无疑问与数组和数据字段有关。帮我一个忙,把重复的标记去掉,这样我就能得到一些答案。
-
@fastsnail 什么是数组列表?我是一名高中生,刚接触java。我从未听说过数组列表。
-
如果您阅读副本,您会了解到
NullPointerException的出现是出于一个原因,即取消引用null值。所以在你的场景中必须有null。那是testScores。在这种情况下,链接的重复问题/答案是规范问题/答案。别人调试一个人的问题很少有用。了解导致 NPE 的原因以及如何处理它会更有用。 给一个人一条鱼,他会吃一天。授人以渔,食其一生。 -
将问题标记为重复不会使问题不好。
标签: java arrays nullpointerexception double java.util.scanner