我试图制作一个类对象的二维数组,但我一直收到错误。我该如何解决?

问题描述 投票:0回答:0

我继续在 TicTacToe 类的二维数组上收到空指针异常,它本身包含一个二维数组。

public class MyProgram
{
    public static void main(String[] args)
    {
        TicTacToe[][] ultGame = new TicTacToe[3][3];
        for(int a = 0; a < 3; a++)
        {
            for(int b = 0; b < 3; b++)
            {
                ultGame[a][b].printBoard();
            }
            System.out.println();
        }
        
    }
}

这是我的主要方法,它生成一个二维数组并调用 TicTacToe 类(见下文)。空指针异常发生在嵌套的 for 循环中,因为我正在调用 ultGame[a][b]

class TicTacToe
{
    private String[][] board = {{"-","-","-"},{"-","-","-"},{"-","-","-"}};
    public TicTacToe ()
    {
    }
    public void printBoard()
    {
        for (int a = 0; a < 3; a++)
        {
            for (int b = 0; b < 3; b++)
            {
                System.out.print(board[a][b] + " ");
            }
            System.out.println();
        }
    }
}

如果有人可以帮助我弄清楚如何解决这个问题或帮助我以不同的方式做同样的事情,那么请告诉我。

我尝试了三件事:

  1. 我尝试调用一个新的 TicTacToe 对象并将其分配给一个变量游戏。

    TicTacToe game = new TicTacToe();
    然后,我用这个对象制作了二维数组。
    game[][] ultGame = new game[3][3]
    这导致了一条错误消息,其中“游戏”未被识别为已声明。

  2. 我尝试遍历每个单独的索引,而不是将其放入嵌套的 for 循环中以查找问题所在。所有这些都是空的。

  3. 我尝试的最后一件事是设置一个 if 语句,如果它为 null,它将注册,然后尝试为其分配一个新的初始化 TicTacToe 以尝试查看是否会使它不为 null,但这没有用。

if(ultGame[a][b].equals(null))
{
    ultGame[a][b] = new TicTacToe();
}
java class multidimensional-array nullpointerexception
© www.soinside.com 2019 - 2024. All rights reserved.