首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >包装类java

包装类java
EN

Stack Overflow用户
提问于 2014-03-11 20:19:29
回答 2查看 65关注 0票数 0

我正在尝试初始化一个2D数组列表,其中每一行都有一个包装器对象。

代码语言:javascript
运行
复制
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数组列表的,其中每个对象都是一个wrapperBoard。WrapperBoard是一个堆栈对象。

代码语言:javascript
运行
复制
I'm recieving the error java.lang.NullPointerException
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-03-11 20:26:06

代码中很少有错误:

  1. 如果要在数组中放置某些内容,则没有首先初始化数组。默认情况下,类的非私有字段是用null初始化的,这就是您看到NPE的原因(您试图在null上调用[row][col] ),所以请使用 专用WrapperBoard板=新WrapperBoarddime;
  2. 数组中的索引从0开始,最大值为dim - 1,因此您应该在row < dime时继续迭代,而不是row <= dime (与col相同)
票数 2
EN

Stack Overflow用户

发布于 2014-03-11 20:21:08

您没有初始化board变量,因为C++中没有“堆栈对象”。

必须通过执行以下操作来初始化board

代码语言:javascript
运行
复制
private WrapperBoard[][] board = new WrapperBoard[20][20];

这将为实例化其他对象创造空间,就像您在循环中所做的那样。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22335771

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档