我希望能够创建这样的东西:
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;
}
}
问题是,当尝试将值分配给 p[i].x
或 p[i].y< 时,会引发
NullPointerException
/
这是我第一天接触 Java,并通过 Google 和 StackOverflow 进行了一些研究,但没有发现任何触及问题核心的内容。
最佳答案
您收到的 NullPointerException
异常是由这一行引起的:
p[i].x = (float)tx;
您尝试访问存储在 p
数组中 i
位置的对象的 x
属性,但是此元素(或该数组内的任何其他元素)尚未设置且等于 null。
要解决此问题,请在上述行上方添加此行:
p[i] = new point();
关于java - 尝试创建一个结构化数组Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17537136/