这个问题在这里已经有答案了:
如何比较java中的字符串(23个答案)
什么是nullpointerexception,如何修复它(12个答案)
18天前关门了。
我正在尝试绘制一个基于2d数组的游戏网格图,并希望它根据变量进行更改。这就是我所拥有的(我在原始if下面有更多的else if语句,但即使这样它也返回null:
public class Game {
Maps maps = new Maps();
public int[][] createArea() {
if (background.equals("Fighter")) {
System.out.println("yep");
int carea[][] = new int[maps.map2.length][maps.map2[0].length];
for(int i=0; i < maps.map2.length; i++) {
for(int j=0; j<maps.map2[i].length; j++)
carea[i][j] = maps.map1[i][j];
}
return carea;
}
else {
return null;
}
}
Map类:
public class Maps {
int[][] map2 =
{
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
};
}
当它尝试绘制时,在drawing类中给出一个nullpointerexception,表示startarea()的返回值为null。“if(background==”fighter“)”条件肯定满足了,因为“yep”行被打印出来,当我去掉if/else时,它画得很好。
我也会发布绘图类的情况下,这看起来不错,但我认为问题是什么,我已经张贴。我对编程非常陌生,所以我觉得我缺少一些基本的东西。
1条答案
按热度按时间w46czmvw1#
我有预感这和你的背景fighter if语句有关,你在哪里分配fighter变量
-将返回值改为null,并改为打印2d数组以尝试定位问题所在!