我被优化的应用程序,并想改变我的for循环,以增强循环:如何用增强型for-loop初始化一个数组?
来源:
for (int m = 1;m < MAX_BEREN;m++)
{
Wasberen[m] = new Wasbeer();
Wasberen[m].YYY = r.nextInt(SchermY - 28);
}
到:
for (Wasbeer a : Wasberen)
{
if (a!=null)
{
a = new Wasbeer();
a.YYY = r.nextInt(SchermY - 28);
}
}
我得到一个NullPointerException,因为它可能完全不认识多少'beren'可以在 这个数组中,但是我不知道如何管理和上面的循环(MAX_BEREN = 11)相同的结果。
所以我用'for'进行初始化,并在增强循环的后期阶段进行迭代?因为'wasberen'在初始化后已经存在 – Mars
可能会抛出NullPointerException,因为您的代码片段来自Wasbeer no-arg构造函数,或者'r'也是空引用。异常的堆栈跟踪应识别罪魁祸首。 –