嗨,我正在为学校创建一个小游戏,但是当我尝试执行此操作以填写此数组中的x和y变量时,我得到了NPE。
有人可以帮忙吗?

public class mainclass {
    public static void main(String[] args) {
        Gra piece[] = new Gra[10];

        for (int i = 0; i < piece.length; i++) {
            piece[i].x = 50;
            piece[i].y = 50;
        }
    }
}

class Gra{
    public int x = 50;
    public int y = 10;
}

最佳答案

Gra piece[] = new Gra[10];


不会初始化数组内的对象,它只会创建数组,因此调用构造函数来创建Gra

for (int i = 0; i < piece.length; i++) {
   piece[i] = new Gra();
   piece[i].x = 50;
   piece[i].y = 50;
}

关于java - java-为什么此for循环会给出nullpointer异常?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14576807/

10-12 04:50