java - 在实例化的 boolean 数组上获取 NPE

标签 java nullpointerexception

<分区>

好吧,我遇到了一个我无法弄清楚的 NPE,这让我非常抓狂。我有一个预订对象的链接列表和一个二维 boolean 数组来跟踪可用座位:

class ResList
{
    private Reservation head;
    private boolean [][] seats;

    ResList()
    {
        head = null; //empty list
        boolean[][] seats = new boolean[5][25];
    }

我还有一个方法 isAvailable() 来确定是否有空位:

boolean isAvailable(int f, int s)
    {        
        if(f<0 || f>4 || s < 0 || s > 24)
            return false;
        else
            return !seats[f][s]; // this line throws the NPE
    }

但是当我这样做的时候:

jcbSeat = new JComboBox();        
        for(int i = start; i <= stop; i++)
        {        
            if(list.isAvailable(selectedFlight, i))
                jcbSeat.addItem(i+1);
        }

我在注明的地方得到了 NPE。我在 ResList 构造函数中添加了一些调试行,并且可以在那里访问 seats[][] 就好了,但是当我执行该方法时,ka-boom: NPE。这是怎么回事?

最佳答案

您的构造函数正在初始化局部变量 seats,而不是实例变量 seats。 尝试:

ResList()
{
   head = null; //empty list
   seats = new boolean[5][25];
}

关于java - 在实例化的 boolean 数组上获取 NPE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9822955/

相关文章:

java - 由于在java上无法正常工作

java - 如何将下拉列表中所选选项的值分配给jsp中的变量?

console - System.out 什么时候不会出现在 Java 控制台中?

for 循环 NullPointerException 中的 Java 迭代器

java - 抛出 JDBC 空指针异常

java - 在 Fragment 上执行一些操作返回

java - 类被实例化多次;如何知道正在调用的是哪一个?

android - 当我单击打开弹出窗口的按钮时,应用程序崩溃

android - LAN socket programming - 获取空指针和地址使用异常

android - Dropbox Sync Api for Android 中的奇怪错误