below is an app im working on:
- MainClass
- Employee
- Manager
- QATester
- Devloper
This is the Example Scenario:
1) For the given hierarchy:
Manager A $300
Manager B $300
Developer $1000
QA Tester $500
2) Manager A’s allocation should be: $2100
The issue I am currently having is when I run the code I get the following Error:
Exception in thread "main" java.lang.NullPointerException
at expenseApp.Manager.add(Manager.java:28)
at main.MainClass.main(MainClass.java:15)
I am a little confused as to what is going on and how it can be fixed. Could you please help? I'm relatively new to programming so examples of suggests do a lot for me. In Manager I left in some commented out code which represents a few of my attempts to fix.
Thank you.
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);
}
}
package expenseApp;
public abstract class Employee
{
public abstract int getExpenses();
}
package expenseApp;
import java.util.ArrayList;
public class Manager extends Employee
{
private ArrayList<Manager> managerList; //= new ArrayList<>();
private ArrayList<Employee> employeeList; //= new ArrayList<>();
// public Manager(ArrayList<Manager> managers, ArrayList<Employee> employees)
// {
// this.managerList = new ArrayList<>(managers);
// this.employeeList = new ArrayList<>(employees);
// }
public void add(Employee employee)
{
if(employee instanceof Manager)
{
//managerList = new ArrayList<>();
managerList.add((Manager) employee);
}
else
{
//employeeList = new ArrayList<>();
**employeeList.add(employee);**
}
}
@Override
public int getExpenses()
{
return 300;
}
public int getTotalExpenses()
{
int totalExpenses = 0;
for(Manager manager : managerList)
{
totalExpenses += manager.getTotalExpenses();
}
for(Employee employee : employeeList)
{
totalExpenses += employee.getExpenses();
}
return totalExpenses;
}
}
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;
}
}