HW:Java程序生成NullPointerException错误消息

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)

我正在为我的数据结构类编写代码。我的代码由5个类组成,它们组合起来创建一个由100个值介于0和100之间的随机整数组成的数组,从这些数字中提取各种统计信息,并生成与正态分布相比的标准偏差。显然,我计算标准偏差的方法与给出空指针错误的东西有关:

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. 
}