【问题标题】:HW: Java program generating NullPointerException error messageHW:Java 程序生成 NullPointerException 错误消息
【发布时间】:2013-10-23 18:09:44
【问题描述】:

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

Exception in thread "main" java.lang.NullPointerException 
at UnorderedArrayList.standardDeviation(UnorderedArrayList.java:113)
at ValueList.main(ValueList.java:53)

代码sn-p是

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 似乎在程序的其他地方工作正常。

我花了几个小时与私人导师一起工作,我也向我的教授寻求建议,但我无法确定导致此错误的原因。有没有人有什么建议?

【问题讨论】:

    标签: java arrays nullpointerexception


    【解决方案1】:

    很明显,this.list[i] 返回 null 所以你应该检查这个索引下的元素是否真的设置了。如果你有类似的东西

    IntElement[] array = new IntElement[100];
    array[0] = new IntElement();
    

    那么除array[0] 之外的其余元素将为空,因此您的索引可能太高了。

    【讨论】:

      【解决方案2】:
      IntElement shortList = (IntElement) (this.list[i]);
      int num = shortList.getNum();
      

      这里您的shortList 为空,这意味着存在于list 的ith 位置的元素为空。

      【讨论】:

        【解决方案3】:

        我同意上面给出的答案,只是补充一下,总是建议在这种情况下进行空检查。

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

        【讨论】:

          猜你喜欢
          • 2013-06-30
          • 2015-09-01
          • 1970-01-01
          • 1970-01-01
          • 2020-05-04
          • 2019-11-21
          • 1970-01-01
          • 2015-11-28
          • 1970-01-01
          相关资源
          最近更新 更多