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();
    }