1

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

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

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

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

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

4

2 回答 2

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

java中局部变量和全局变量的区别

于 2015-05-09T08:44:39.710 回答
0

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

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

于 2015-05-09T08:34:56.980 回答