Java 为什么这里会出现空指针异常?
我正在使用java。此代码的第二行是获取空指针异常Java 为什么这里会出现空指针异常?,java,Java,我正在使用java。此代码的第二行是获取空指针异常 double gpa = 0.0; gpa = grads[index].calculateGPA(); return gpa; 渐变是渐变对象的数组。我已经在JUnitTest中测试了这个方法,效果很好。我还测试了calculateGPA()。只有在运行程序时才会出现错误。该错误可能是由以下可能性之一引起的: grads为null 索引为null grads[index]为null calculateGPA()正在引发空指针异常 使用调试器
double gpa = 0.0;
gpa = grads[index].calculateGPA();
return gpa;
渐变是渐变对象的数组。我已经在JUnitTest中测试了这个方法,效果很好。我还测试了calculateGPA()。只有在运行程序时才会出现错误。该错误可能是由以下可能性之一引起的:
grads
为null
索引
为null
grads[index]
为null
calculateGPA()
正在引发空指针异常使用调试器找出这些可能性中的哪一种,并从中吸取教训。错误可能由以下可能性之一引起:
grads
为null
索引
为null
grads[index]
为null
calculateGPA()
正在引发空指针异常使用调试器找出这些可能性中的哪一种,并从中获取。或
梯度
数组作为一个整体是空的
(未初始化)。或索引
是一个整数
且为空。好的,我们现在最多有4个候选项。4号有进展吗?!;-)或者grads
数组作为一个整体是null
(未初始化)。或者index
是一个整数,并且是null。好的,我们现在最多有4个候选者。4号有进展吗?!;-)grads
数组是如何初始化的?当你得到异常或只是在调试器中运行它时,你是否检查了index
和grads[index]
的值?如果你得到这样的异常,你的第一步应该是添加System.out.println(“grads is null:+(grads==null)+”grads[index]为空:“+(梯度[索引]==null))代码>在引发异常的前一行。@Alderath谢谢。我使用了你的建议,发现索引是问题所在,grads
数组是如何初始化的?当你得到异常或只是尝试在调试器中运行它时,你是否检查了index
和grads[index]
的值?如果你得到这样的异常,你的第一步应该是添加System.out.println(“grads is null:”+(grads==null)+“grads[index]is null:”+(grads[index]==null));
在引发异常的前一行。@Alderath谢谢你。我使用了你的建议,发现索引是问题所在