首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >列表输入法

列表输入法
EN

Stack Overflow用户
提问于 2013-01-28 15:12:25
回答 2查看 1K关注 0票数 0

我是新手,我对下面的方法有一个问题:问题是:java.lang.NullPointerException

代码:

代码语言:javascript
复制
public static List<Integer> input(List<Integer> l)
{
        Node<Integer> pos=l.getFirst();
        System.out.println("Enter num (!=999)");
        int x = reader.nextInt();
        l.insert(null, x);
        while(x!=999)
        {
                System.out.println("Enter num (!=999)");
                l.insert(pos, x);
                pos = pos.getNext();
        }

        return l;
}

傻了我把输入信息忘在了.里面

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-28 15:33:38

如果将l初始化为空列表,则调用

代码语言:javascript
复制
Node<Integer> pos=l.getFirst();

会返回null。然后,在一个pos.getNext();实例上调用null,因此调用NullPointerException。解决这一问题的一种方法是处理while循环中空列表的可能性,如下所示:

代码语言:javascript
复制
while (x != 999)
{
    System.out.println("Enter num (!=999)");
    l.insert(pos, x);
    if (pos == null)
        pos = l.getFirst();
    else
        pos = pos.getNext();
}

当您运行这个程序时,您将看到代码中的第二个问题,您应该能够解决这个问题。

祝好运!

票数 0
EN

Stack Overflow用户

发布于 2013-01-28 15:28:35

有两种可能性:

  1. 您的"pos“引用是null (可以对此进行检查)
  2. "pos“对象包含一个空对象,然后编译器尝试将其自动装箱到某个原始类型( Node被声明为Integer对象类型)。

因此:在尝试访问"pos“之前检查是否为pos,并在声明”pos“对象时使用"Integer”对象。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14564988

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档