使用雇员对象数组但获得NullPointerException的雇员数据库

时间:2018-11-04 06:41:40

标签: java nullpointerexception

我不知道在代码中的何处进行编辑。我正在尝试使用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);

2 个答案:

答案 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());
    }