将对象添加到ArrayDeque时遇到NullPointerException

时间:2015-05-09 08:24:32

标签: java nullpointerexception arraydeque

该课程旨在容纳一堆房间号码(即酒店客人所在的房间),并允许检索最后一个房间(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);
    }
}

当我明确提供整数值时,我不明白它是如何抱怨整数为空的。请协助。

2 个答案:

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

the difference between local and global variables in java