我是新手,我对下面的方法有一个问题:问题是:java.lang.NullPointerException
代码:
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;
}傻了我把输入信息忘在了.里面
发布于 2013-01-28 15:33:38
如果将l初始化为空列表,则调用
Node<Integer> pos=l.getFirst();会返回null。然后,在一个pos.getNext();实例上调用null,因此调用NullPointerException。解决这一问题的一种方法是处理while循环中空列表的可能性,如下所示:
while (x != 999)
{
System.out.println("Enter num (!=999)");
l.insert(pos, x);
if (pos == null)
pos = l.getFirst();
else
pos = pos.getNext();
}当您运行这个程序时,您将看到代码中的第二个问题,您应该能够解决这个问题。
祝好运!
发布于 2013-01-28 15:28:35
有两种可能性:
pos“引用是null (可以对此进行检查)pos“对象包含一个空对象,然后编译器尝试将其自动装箱到某个原始类型( Node被声明为Integer对象类型)。因此:在尝试访问"pos“之前检查是否为pos,并在声明”pos“对象时使用"Integer”对象。
https://stackoverflow.com/questions/14564988
复制相似问题