This question already has answers here:
initialize java array vs other initialization?
(5个答案)
5年前关闭。
我正在初始化一个Object(Bateau),其中包含一个称为元素的对象(元素)数组。
调用构造函数后,我想为“ bateau”对象创建多个元素。
元素的数量取决于哪种类型的“ bateau”而有所不同,这是因为“ Bateau”具有3个子类,这些子类确定要初始化的元素的数量。
当我尝试向元素中添加新元素时,我得到了NPE,有人可以帮助我解决此问题吗?
我建议你用
(5个答案)
5年前关闭。
我正在初始化一个Object(Bateau),其中包含一个称为元素的对象(元素)数组。
调用构造函数后,我想为“ bateau”对象创建多个元素。
元素的数量取决于哪种类型的“ bateau”而有所不同,这是因为“ Bateau”具有3个子类,这些子类确定要初始化的元素的数量。
当我尝试向元素中添加新元素时,我得到了NPE,有人可以帮助我解决此问题吗?
public class Bateau {
private boolean horizontal = false;
protected Element[] elements;
public Bateau(int pX, int pY, boolean horizontal, int nombreElements) {
this.horizontal = horizontal;
for (int i = 0; i < nombreElements; i++) {
if (this.horizontal) {
//NullPointerException elements[i] not initialized ?
this.elements[i] = new Element((pX + i), pY);
} else {
this.elements[i] = new Element(pX, (pY + i));
}
}
}}
最佳答案
在调试器中,您将看到
Element[] elements = null;
我建议你用
elements = new Element[nombreElements];
09-10 09:50