我不知道在代码中的何处进行编辑。我正在尝试使用Employee对象数组创建一个雇员数据库。在Line24处给出了java.lang.NullPointerException。请帮助我理解。
Map<String, Object> user = new HashMap<>();
user.put("photoUrl", FIELD_photoUrl);
user.put("email", FIELD_email);
user.put("displayName", FIELD_displayName);
userDocumentReference.update(user);
答案 0 :(得分:0)
按如下所示更改代码:
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scn=new Scanner(System.in);
emp=new EmployeeDetail[3];
for(int i=0;i<3;i++) {
emp[i] = new EmployeeDetail();
System.out.println("Enter the employee "+(i+1)+" name");
emp[i].EmpName=scn.nextLine();
System.out.println("Enter the employee "+(i+1)+" number");
emp[i].EmpNumber=Integer.parseInt(scn.nextLine());
System.out.println("Enter the employee "+(i+1)+" Mobile number");
emp[i].MobNumber=Long.parseLong(scn.nextLine());
System.out.println("Enter the employee "+(i+1)+" Salary");
emp[i].Salary=Float.parseFloat(scn.nextLine());
}
scn.close();
empDataoutput();
}
查看emp[i] = new EmployeeDetail();
,在该实例中实例化对象并将其添加到emp数组的索引。
emp=new EmployeeDetail[3];
创建大小为3但其中包含null
值的EmployeeDetail数组。
答案 1 :(得分:0)
您需要在循环中实例化EmployeeDetail
对象:
for(int i=0;i<3;i++) {
emp[i] = new EmployeeDetail();
System.out.println("Enter the employee "+(i+1)+" name");
emp[i].EmpName=scn.nextLine();
System.out.println("Enter the employee "+(i+1)+" number");
emp[i].EmpNumber=Integer.parseInt(scn.nextLine());
System.out.println("Enter the employee "+(i+1)+" Mobile number");
emp[i].MobNumber=Long.parseLong(scn.nextLine());
System.out.println("Enter the employee "+(i+1)+" Salary");
emp[i].Salary=Float.parseFloat(scn.nextLine());
}