【问题标题】:NullPointerException encountered when adding objects to ArrayDeque向 ArrayDeque 添加对象时遇到 NullPointerException
【发布时间】:2015-07-20 04:34:01
【问题描述】:

该类旨在保存一堆房间号(即酒店客人入住的房间)并允许检索最后入住的房间 (LIFO)。

现在,我只想添加一个项目,但似乎不起作用。我可以为此使用堆栈,但我正在尝试使用 ArrayDeque(因为它应该更灵活?)。

无论如何,当执行提供整数作为参数的 addRoom() 方法时,ArrayDeque 在我使用 addFirst()add() 的第 14 行抛出 NullPointerException strong> ArrayDeque 的方法。

import java.util.ArrayDeque; 

public class RoomNumbers
{
    private ArrayDeque<Integer> roomNumbers;

    public RoomNumbers()
    {
        ArrayDeque<Integer> roomNumbers = new ArrayDeque<Integer>();
    }

    public void addRoom(int roomNumber)
    {
       roomNumbers.addFirst(roomNumber);
    }
}

我不明白当我明确提供整数值时,它怎么会抱怨整数为空。请协助。

【问题讨论】:

  • 这很有帮助,谢谢 :)

标签: java nullpointerexception arraydeque


【解决方案1】:
public class RoomNumbers {
        private ArrayDeque<Integer> roomNumbers;

        public RoomNumbers()
        {
           roomNumbers = new ArrayDeque<Integer>();
        }

        public void addRoom(int roomNumber)
        {
            roomNumbers.addFirst(roomNumber);
        }

    public static void main(String[] args) {
        RoomNumbers roomNumbers = new RoomNumbers();
        roomNumbers.addRoom(1);
    }
}

the difference between local and global variables in java

【讨论】:

    【解决方案2】:

    您的构造函数 RoomHistory 与您的类 RoomNumbers 不匹配,因此 roomNumbers 实例尚未初始化,导致抛出 NullPointerException。

    并且不要在构造函数中重新声明 roomNumbers。

    【讨论】:

    • 杜克,谢谢您的回复。在将构造函数与类名匹配后,仍然在同一行遇到相同的错误。
    猜你喜欢
    • 2011-06-10
    • 1970-01-01
    • 1970-01-01
    • 2023-03-22
    • 2018-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-23
    相关资源
    最近更新 更多