小编meh*_*anc的帖子

对于每个循环都无法初始化数组中的对象

我会快速解决这个问题.我有一个简单的课程

class Vector{
    float x, y;
}
Run Code Online (Sandbox Code Playgroud)

另一个类有这些对象的数组作为其成员

Vector[] buffer;
Run Code Online (Sandbox Code Playgroud)

我像这样初始化它:

buffer = new Vector[8];
for(Vector v: buffer)
    v = new Vector();
Run Code Online (Sandbox Code Playgroud)

但是当我尝试在这个数组中访问这个对象的成员时,我直接得到一个NullPointerException到我的堆栈跟踪.也就是说,尚未构造数组的对象.另一方面,这个更传统的代码非常完美:

buffer = new Vector[8];
for(int i = 0; i<8; i++)
    buffer[i] = new Vector;
Run Code Online (Sandbox Code Playgroud)

正如讨论所指出的那样,编译后两者都应该相同.

我的问题是,为什么每个循环都无法从项目数组初始化/构造对象?

java syntax for-loop

8
推荐指数
2
解决办法
2552
查看次数

标签 统计

for-loop ×1

java ×1

syntax ×1