在java中创建对象数组时出现空指针异常

在java中创建对象数组时出现空指针异常,java,arrays,object,Java,Arrays,Object,我已经检查了几乎所有类型的对象数组声明。请建议所需的更改。此代码给我一个空指针异常,如下所示: 线程“main”java.lang.NullPointerException中出现异常 位于objarray.main(objarray.java:33) import java.util.*; 类产品{ 私人内部pno,pcost; 私有字符串pname; 无效接受(){ 扫描仪sc=新扫描仪(System.in); System.out.println(“输入pno”); pno=sc.nextI

我已经检查了几乎所有类型的对象数组声明。请建议所需的更改。此代码给我一个空指针异常,如下所示:

线程“main”java.lang.NullPointerException中出现异常 位于objarray.main(objarray.java:33)

import java.util.*;
类产品{
私人内部pno,pcost;
私有字符串pname;
无效接受(){
扫描仪sc=新扫描仪(System.in);
System.out.println(“输入pno”);
pno=sc.nextInt();
System.out.println(“输入pname”);
pname=sc.next();
System.out.println(“输入pcost”);
pcost=sc.nextInt();
}
作废打印(){
System.out.println(pno+“\t”+pname+“\t”+pcost);
}
}
类objarray{
公共静态void main(字符串[]args){
int i;
产品[]p=新产品[3];
对于(i=0;i<3;i++)
p[i].accept();
对于(i=0;i<3;i++)
p[i].print();
}
}

您需要初始化数组的元素:

Prod[] p = new Prod[3];
for(i = 0;i<3;i++)
    p[i] = new Prod(); // added this line
    // rest of code
Prod[]p=新产品[3];
对于(i=0;i
Prod[]p=newprod[3];

对于(i=0;i初始化数组中的元素以避免空指针异常以获得清晰的图像,请尝试eclipse debugger,在那里您将知道存在空值的位置,并且可以轻松地处理这些问题

初始化数组元素(对象)
p[i]=new Prod()
每次新对象进入for循环时,您都需要创建新对象。请参阅。+1,因为您正处于学习阶段。:)非常感谢!这帮了大忙!非常感谢!这帮了大忙!
Prod[] p = new Prod[3];
for(i = 0;i<3;i++)
    p[i] = new Prod(); // added this line
    // rest of code
    Prod[] p = new Prod[3];
    for(i = 0;i<3;i++){
        p[i] = new Prod(); // this will assign in each
// rest your logic.

    }