列出nullPointer

时间:2017-03-24 14:42:04

标签: java list nullpointerexception

我们开始在课堂上处理列表,并且有一项任务是在没有创建新列表的情况下将数字与列表分开。所以我在列表中首先使用了sepNum标签。但它返回nullPointer,我不明白为什么。 nullPointer出现在separateNumbers方法的第2行。元素首先存在,并且是!null。

public void separateNumbers() {
    sepNum = first;
    while (sepNum.info < 0 || sepNum.info > 9)
        sepNum = sepNum.point;

    Element previous = sepNum;
    Element current = sepNum.point;
    while (current != null) {
        if (current.info < 0 || current.info > 9){
            previous.point = current.point;
            current = current.point;
        } else {
            previous = current.point;
            current = current.point;
        }
    }
}

这是Element类:

     class Element {
        char info;
        Element point;

        public Element (char ch) {
            this.info=ch;
            this.point=null;
        }

        public String toString() {
            return info+(point == null ? " " + point : "");
        }
    }

我一直试图想出这个问题几个小时了。你能帮忙吗?

1 个答案:

答案 0 :(得分:1)

第二次通过while循环发生问题。我用大括号中的值替换了变量。

public void separateNumbers()
{
    sepNum = {info: 'a', point: null};
    while ({'a'} < 0 || {'a'} > 9)  //sepNum.info
        sepNum = {null};            //sepNum.point

然后再次回到while循环以测试条件:

while ({null}.info < 0 || {null}.info > 9)    //sepNum.info

因为您正在引用null,所以会得到一个空指针异常。