我正在尝试初始化一个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
答案 0 :(得分:2)
你没有初始化你的board
变量,因为Java中没有“堆栈对象”,就像在C ++中一样。
您必须通过执行类似
的操作来初始化board
private WrapperBoard[][] board = new WrapperBoard[20][20];
将为你在循环中实例化其他对象创造空间。
答案 1 :(得分:2)
您的代码中几乎没有错误:
如果您想在其中放置一些内容,则不会先初始化您的阵列。默认情况下,类的非私有字段使用null
进行初始化,这就是您看到NPE的原因(您尝试在null上调用[row][col]
),因此请使用
private WrapperBoard[][] board = new WrapperBoard[dime][dime];
数组中的索引从0
开始,最大值为dim - 1
,因此您应该继续row < dime
而不是row <= dime
进行迭代(相同于{{1} }})