这给了我一个错误。我认为这在语法上是正确的。我没有java方面的经验。只有c++。有人能告诉我我做错了什么吗?
private enum Site{
OPEN, BLOCKED }
Site[][] grid;
final Site DEFAULT_STATE = Site.OPEN;
/**
* Constructor.
*/
public GridClass(int N)
{
for(int i = 0; i < N; i++)
{
for(int j = 0; j < N; i++)
{
grid[i][j] = DEFAULT_STATE;
}
}
}
3条答案
按热度按时间6l7fqoea1#
问题是你正在访问
grid
没有给它分配内存。将此添加为构造函数的第一行:
您收到的错误称为
NullPointerException
因为grid[i][j]
行正在尝试取消对空指针的引用grid
.另外,你的第二个for循环说
i++
; 应该是的j++
.zu0ti5jz2#
您需要在构造函数中创建数组,因为这是您知道维度的地方。这不能在静态初始值设定项中完成,因为此时n不在作用域中。
piwo6bdm3#
你只是宣布
grid
,你没有定义它。你需要这样的东西: