java - 尝试创建一个结构化数组Java

标签 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;

    }
}

问题是,当尝试将值分配给 p[i].xp[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/

相关文章:

java - 关闭与 Java 的 websocket 连接

java - 循环中的repaint()方法

java - 为什么 Arrays.sort(arr) 返回 0 值

java - 基于输入的二维数组大小

ruby - 替换 Ruby 中的 to_s 方法。没有打印出想要的字符串

java - 使用 hibernate-ResultSet 调用 Oracle 过程 仅返回第一行数据 剩余行数据丢失

java - 无法在多线程中实现同步

c - 传递常量矩阵

java - 类加载器、类差异

使用继承的c++语法