Java错误&;初始化:java_lang_NullPointerException

Java错误&;初始化:java_lang_NullPointerException,java,arraylist,nullpointerexception,Java,Arraylist,Nullpointerexception,以下是im正在使用的应用程序: 主类 雇员 经理 QATester 德夫勒 这是 示例场景: 1) For the given hierarchy: Manager A $300 Manager B $300 Developer $1000 QA Tester $500 2) Manager A’s allocation should be: $2100 我当前遇到的问题是,当我运行代码时,出现以下错误: Exc

以下是im正在使用的应用程序:

  • 主类
  • 雇员
  • 经理
  • QATester
  • 德夫勒
这是 示例场景:

1) For the given hierarchy:
    Manager A  $300
        Manager B  $300
            Developer $1000
            QA Tester $500

2) Manager A’s allocation should be: $2100
我当前遇到的问题是,当我运行代码时,出现以下错误:

Exception in thread "main" java.lang.NullPointerException
at expenseApp.Manager.add(Manager.java:28)
at main.MainClass.main(MainClass.java:15)
我有点困惑到底发生了什么,以及如何修复它。你能帮忙吗?我对编程比较陌生,所以建议的例子对我有很大帮助。在Manager中,我留下了一些注释掉的代码,这些代码代表了我修复的一些尝试

多谢各位

package main;

import expenseApp.Developer;
import expenseApp.Manager;
import expenseApp.QATester;

public class MainClass {

    public static void main(String[] args) 
    {
        QATester tester1 = new QATester();
        Developer dev1 = new Developer();

        Manager managerB = new Manager();
        **managerB.add(tester1);**
        managerB.add(dev1);

        Manager managerA = new Manager();
        managerA.add(managerB);

    }

}



您已经注释掉了初始化成员变量的代码,例如

private ArrayList<Manager> managerList; //= new ArrayList<>();
private ArrayList<Employee> employeeList; //= new ArrayList<>();
private ArrayList managerList;//=新的ArrayList();
私人ArrayList员工列表;//=新的ArrayList();
尝试:

private ArrayList managerList=new ArrayList();
私有ArrayList employeeList=新ArrayList();

这是因为您的列表未初始化

private ArrayList<Manager> managerList; //= new ArrayList<>();
在列表的空实例上,默认情况下,实例变量初始化为空


这同样适用于
employeeList

也许可以尝试取消对初始化
managerList
等的代码的注释。是否可以突出显示引发异常的行?列表未初始化,因此其引发空指针
managerList=new Arraylist()将对堆栈跟踪中的第一项执行所需操作:“at expenseApp.Manager.add(Manager.java:28)”。查看Manager.java中的第28行。应该有一个“.”运算符,“.”的左侧为空。这是解决空指针异常的正常方法。
package expenseApp;

public class QATester extends Employee
{

    @Override
    public int getExpenses() 
    {
        return 500;
    }

}


package expenseApp;

public class Developer extends Employee
{
    @Override
    public int getExpenses() 
    {
        return 1000;
    }
}
private ArrayList<Manager> managerList; //= new ArrayList<>();
private ArrayList<Employee> employeeList; //= new ArrayList<>();
private ArrayList<Manager> managerList = new ArrayList<>();
private ArrayList<Employee> employeeList = new ArrayList<>();
private ArrayList<Manager> managerList; //= new ArrayList<>();
managerList.add((Manager) employee);