试图创建一个结构化数组Java

coo*_*ron 0 java arrays class nullpointerexception

我希望能够创建这样的东西:

int points = 250;

public class point {

    float x, y;

}

point[] p = new point[points];

// constructor
public JavaMain() {

    Random r = new Random();

    for (int i = 0; i < points; i++) {

        int tx = r.nextInt(640) + 1;
        int ty = r.nextInt(480) + 1;

        p[i].x = (float)tx;
        p[i].y = (float)ty;

    }
}
Run Code Online (Sandbox Code Playgroud)

问题是,这会NullPointerException在尝试为p[i].x或分配值时抛出一个p[i].y

这是我在Java上的第一天,并通过Google和StackOverflow进行了一些研究,但没有发现任何可以解决问题的核心问题.

Ada*_*ion 8

NullPointerException您获得的异常是由此行引起的:

p[i].x = (float)tx;
Run Code Online (Sandbox Code Playgroud)

你试图访问x存储在p数组中位置的对象的属性i,但是这个元素(或者这个数组中的任何其他元素)还没有被设置并且等于null.

要解决此问题,请在上述行上方添加以下行:

p[i] = new point();
Run Code Online (Sandbox Code Playgroud)