包装类java

时间:2014-03-11 20:19:30

标签: java

我正在尝试初始化一个2D arraylist,其中每个col / row都有一个包装器对象。

private WrapperBoard[][] board;


public Board() {;
    for(int row = 0; row <= dime; row++) {
        for(int col = 0; col <= dime; col++) {
            board[row][col] = new WrapperBoard();
        }
    }

我是做什么来初始化一个2d Arraylist,其中每个对象都是一个wrapperBoard。 WrapperBoard是一个堆栈对象。

I'm recieving the error java.lang.NullPointerException

2 个答案:

答案 0 :(得分:2)

你没有初始化你的board变量,因为Java中没有“堆栈对象”,就像在C ++中一样。

您必须通过执行类似

的操作来初始化board
private WrapperBoard[][] board = new WrapperBoard[20][20];

将为你在循环中实例化其他对象创造空间。

答案 1 :(得分:2)

您的代码中几乎没有错误:

  1. 如果您想在其中放置一些内容,则不会先初始化您的阵列。默认情况下,类的非私有字段使用null进行初始化,这就是您看到NPE的原因(您尝试在null上调用[row][col]),因此请使用

    private WrapperBoard[][] board = new WrapperBoard[dime][dime];
    
  2. 数组中的索引从0开始,最大值为dim - 1,因此您应该继续row < dime而不是row <= dime进行迭代(相同于{{1} }})