Java错误&;初始化:java_lang_NullPointerException
以下是im正在使用的应用程序: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
- 主类
- 雇员
- 经理
- 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);