Java 列表输入法
我是列表新手,我对以下方法有问题: 问题是:Java 列表输入法,java,list,input,nullpointerexception,Java,List,Input,Nullpointerexception,我是列表新手,我对以下方法有问题: 问题是:java.lang.NullPointerException 代码: 公共静态列表输入(列表l) { Node pos=l.getFirst(); System.out.println(“输入num(!=999)”; int x=reader.nextInt(); l、 插入(空,x); while(x!=999) { System.out.println(“输入num(!=999)”; l、 插入(位置x); pos=pos.getNext(); }
java.lang.NullPointerException
代码:
公共静态列表输入(列表l)
{
Node pos=l.getFirst();
System.out.println(“输入num(!=999)”;
int x=reader.nextInt();
l、 插入(空,x);
while(x!=999)
{
System.out.println(“输入num(!=999)”;
l、 插入(位置x);
pos=pos.getNext();
}
返回l;
}
傻我,我忘了while…中的输入消息有两种可能:
pos
”引用为null
(您可以检查)pos
”对象包含一个空对象,然后编译器尝试将其自动装箱到某个原始类型(将节点
对象声明为整数
对象类型)因此:在尝试访问“
pos
”之前检查null
,并在声明内容时使用“Integer
”对象。如果将l
初始化为空列表,则调用
Node<Integer> pos=l.getFirst();
当您运行这个程序时,您将在代码中看到第二个问题,您应该能够解决这个问题
祝你好运 错误消息出现在哪一行?在pos=pos.getNext()中;你需要发布更多的代码。您在哪里初始化了
读卡器
?我认为问题不在于输入。我已经写过“静态扫描仪阅读器=新扫描仪(System.in);”在List
界面中没有getFirst
这样的方法。您正在使用什么实现?
Node<Integer> pos=l.getFirst();
while (x != 999)
{
System.out.println("Enter num (!=999)");
l.insert(pos, x);
if (pos == null)
pos = l.getFirst();
else
pos = pos.getNext();
}