该课程旨在容纳一堆房间号码(即酒店客人所在的房间),并允许检索最后一个房间(LIFO)。
目前,我只是想添加一个项目,但似乎不起作用。我可以使用堆栈,但我正在尝试使用ArrayDeque(因为它应该更灵活?)。
无论如何,当执行提供整数作为参数的addRoom()方法时,ArrayDeque会在第14行抛出NullPointerException,我在那里使用 addFirst()或 add() 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);
}
}
当我明确提供整数值时,我不明白它是如何抱怨整数为空的。请协助。
答案 0 :(得分:0)
您的构造函数RoomHistory与您的类RoomNumbers不匹配,因此roomNumbers实例尚未初始化,导致抛出NullPointerException。
并且不要在构造函数中重新声明roomNumbers。
答案 1 :(得分:0)
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);
}
}