我在main方法中写了这个语句
异常将在(GuaranteeYears
)中,所以我把它放在try块中。
首先在main
我创建一个Store
对象并在参数中传递数字4,在Store
类中我将有一个名为arrProduct
的数组,它将具有长度4:
boolean flag1 = true;
while (flag1) {
try {
System.out.println("Ente GuaranteeYears");
int GuaranteeYears=read.nextInt();
StrongDevice s = new StrongDevice(code,type,price,Model,Capacity,GuaranteeYears); //the object
flag1 = false;
x.addProduct(s);
}
这是我的添加方法
public boolean addProduct(Product p) {
if(arrProduct.length==NumOfProduct)
return false;
arrProduct[NumOfProduct]=p;
NumOfProduct++;
return true;
}
我的问题是:当我创建对象并将其添加到数组时它会给我NullPointerException
- 为什么会这样?
答案 0 :(得分:0)
据我了解,导致NPE
的行是
x.addProduct(s);
很可能这是由数组arrProduct
引起的,它未被初始化,并在访问时导致NPE
。
要解决此问题,请确认arrProduct
始终在Store
对象创建时正确初始化。