我正在尝试用Java制作一个蛇类游戏。
为此,我使用列表来保存蛇的每个 body 部位
ArrayList<SnakeBodyPart> snakeBodyParts = new ArrayList<SnakeBodyPart>();
.
我声明并启动一个变量,SnakeBodyPart SnakeBodyPart = null;
。
然后,我使用 snakeBodyParts.add(SnakeBodyPart);
向蛇添加 body 部位。 。
(我猜这不是最有效的方法,但必须这样做。)
但由于某种原因,每当我运行脚本时,我都会得到
Exception in thread "main" java.lang.NullPointerException
,
错误是
at game.Snake.<init>(Snake.java:60)
在 Java 控制台中。
我想知道问题出在哪里。这是 SnakeBodyPart 的代码。
class SnakeBodyPart{
int x,y,direction;
void move(){
if(direction == 0){
y -= 50;
}
if(direction == 1){
x += 50;
}
if(direction == 2){
y += 50;
}
if(direction == 3){
x -= 50;
}
}
}
提前致谢!
编辑:
第 60 行是 snakeBodyParts.get(0).direction = 0;
.
最佳答案
您已完成此操作:
SnakeBodyPart snakeBodyPart = null;
创建对象
SnakeBodyPart snakeBodyPart = new SnakeBodyPart();
由于 snakeBodyPart
为 null
,因此您将在 第 60 行
中收到 NullPointerException
。您正在 null
上调用 get()
方法作为 snakeBodyParts.get(0).direction = 0;
关于java - 数组列表上的 NullPointerExceptions,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22215957/