【问题标题】:NullPointerException in processing with 2D array of objects处理二维对象数组时出现 NullPointerException
【发布时间】:2018-04-02 21:12:05
【问题描述】:

我正在创建一个正在处理的小游戏,我正在尝试打印一个 2D 方形对象数组。我有这个NullPointerException,但我似乎在网上找不到类似的东西。

int edge = 10;
public int sizeOfRect = 50;
public int numberOfRects = 10;
Rectangle[][] player = new Rectangle[numberOfRects][numberOfRects];
public int k;
public int l;
public int kcount=0;
public int lcount=0;

void setup(){
    background(200);
    size(565, 565);
}
void draw(){
    for(k=edge; k<width-edge; k+=55){
        for(l=edge; l<height-edge; l+=55){
            player[kcount][lcount].display();
            lcount++;
        }
        lcount=0;
        kcount++;
    }
    kcount=0;
}

和矩形类

class Rectangle{
   int i;
   int j;
Rectangle(){
    i=k;//xcoor
    j=l;//ycoor
}

void display(){
    fill(0);
    rect(i,j,sizeOfRect,sizeOfRect);
    }

}

最后是例外

Plain.pde:17:0:17:0: NullPointerException 完成。无法运行 草图(目标虚拟机初始化失败)。有关更多信息,请阅读 revisions.txt 和帮助?故障排除。无法运行草图。

提前谢谢你

【问题讨论】:

标签: processing


【解决方案1】:

您正在创建一个二维数组,但您永远不会用任何对象填充该数组。换句话说,您的二维数组充满了null 值。这就是您收到NullPointerException 的原因。

你需要用值填充你的数组。这是一个例子:

player[1][2] = new Rectangle();

您可能希望使用嵌套的for 循环来填充您的数组。

【讨论】:

    猜你喜欢
    • 2013-11-26
    • 1970-01-01
    • 1970-01-01
    • 2021-03-31
    • 2013-09-12
    • 2015-11-14
    • 2014-02-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多