HW:Java程序生成NullPointerException错误消息
我正在为我的数据结构类编写代码。我的代码由5个类组成,它们组合起来创建一个由100个值介于0和100之间的随机整数组成的数组,从这些数字中提取各种统计信息,并生成与正态分布相比的标准偏差。显然,我计算标准偏差的方法与给出空指针错误的东西有关:HW:Java程序生成NullPointerException错误消息,java,arrays,nullpointerexception,Java,Arrays,Nullpointerexception,我正在为我的数据结构类编写代码。我的代码由5个类组成,它们组合起来创建一个由100个值介于0和100之间的随机整数组成的数组,从这些数字中提取各种统计信息,并生成与正态分布相比的标准偏差。显然,我计算标准偏差的方法与给出空指针错误的东西有关: Exception in thread "main" java.lang.NullPointerException at UnorderedArrayList.standardDeviation(UnorderedArrayList.java:113)
Exception in thread "main" java.lang.NullPointerException
at UnorderedArrayList.standardDeviation(UnorderedArrayList.java:113)
at ValueList.main(ValueList.java:53)
代码片段是
IntElement shortList = (IntElement) (this.list[i]);
int num = shortList.getNum();
d = num - average;
var += Math.pow((double) d,(double) 2);
错误ID第113行:
int num = shortList.getNum();
getNum在程序的其他地方似乎工作正常
我花了好几个小时和一位私人家教一起工作,并向我的教授征求意见,但我无法确定这个错误的原因。有人有什么建议吗 很明显,
this.list[i]
返回null,因此您应该检查此索引下的元素是否真的设置了。如果你有
IntElement[] array = new IntElement[100];
array[0] = new IntElement();
那么除了数组[0]
之外的其余元素都将为空,所以您的索引可能太高了
IntElement shortList = (IntElement) (this.list[i]);
int num = shortList.getNum();
在这里,您的
短名单
为空,这意味着列表
的i
第th个位置上的元素为空。我同意上面给出的答案,只是要补充一点,在这种情况下,最好先进行空检查
IntElement shortList = (IntElement) (this.list[i]);
int num = 0;
if (shortList !=null) {
num = shortList.getNum();
} else {
System.out.println("No items returned"); //or log it.
}