Я пытаюсь составить список объектов типа SomeClass
.когда я пытаюсь добавить элемент в список, используя listName.add(objectOfSomeClass)
, возникает исключение.Когда я пытаюсь напечатать сообщение для этого исключения, я получаю Null
.Поэтому я не могу найти проблему.
Я показываю вам код в моем классе действий.Что делается здесь:
Я перебираю список сотрудников, и для каждого сотрудника я получаю записи для зарплаты. В конце цикла я пытаюсь добавить этот объект зарплаты в списоктого же типа.Вот где я получаю исключение.Я пытался и пытался, и до сих пор не понял проблему.Я предполагаю, что есть кое-что, чего я не знаю и делаю неправильно.
Я использую hibernate для подключения к базе данных (если это важно знать здесь).
Вот кодкласс действия:
private SalaryQuery salaryQuery = new SalaryQuery();
private List<SalaryPersistence> salaryDetail;
public List<SalaryPersistence> getSalaryDetail() {
return salaryDetail;
}
public void setSalaryDetail(List<SalaryPersistence> salaryDetail) {
this.salaryDetail = salaryDetail;
}
private List<SalaryPersistence> salDet;
public List<SalaryPersistence> getSalDet() {
return salDet;
}
public void setSalDet(List<SalaryPersistence> salDet) {
this.salDet = salDet;
}
SalaryPersistence sal = new SalaryPersistence();
private List<EmployeePersistence> employees;
private EmployeeQuery employeeQuery = new EmployeeQuery();
public String execute(){
employees = employeeQuery.list(""); //gets a list of employees
Iterator<EmployeePersistence> itr = employees.iterator();
while(itr.hasNext()){
EmployeePersistence empl = itr.next();
salDet = salaryQuery.list("where Employee_Code='" + Integer.toString(empl.getEmployeeCode()) + "' and month = '" + dbMonth + "' and year = '" + dbYear + "'");
if(salDet.isEmpty()){
if(dbMonth==1){
salDet = salaryQuery.list("where Employee_Code='" + Integer.toString(empl.getEmployeeCode()) + "' and month = '" + (dbMonth-1) + "' and year = '" + (dbYear-1) + "'");
}else{
salDet = salaryQuery.list("where Employee_Code='" + Integer.toString(empl.getEmployeeCode()) + "' and month = '" + (dbMonth-1) + "' and year = '" + dbYear + "'");
}
if(salDet.isEmpty()){
SalaryPersistence salary = new SalaryPersistence();
salary.setEmployeeCode(Integer.toString(empl.getEmployeeCode()));
salDet.add(salary);
}
}
//// salDet will have only one object corresponding to salary of an employee////
Iterator<SalaryPersistence> sitr = salDet.iterator();
sal = sitr.next();
salaryDetail.add(sal);//I am trying to add the only object in salDet to salaryDetail, but am getting and exception with 'null' message//
}
}
Пожалуйста, помогите мне найти проблему.
Спасибо !!
РЕДАКТИРОВАТЬ
Я простообнаружил, что я получаю java.lang.NullPointerException
(попытался распечатать трассировку стека), когда я пытаюсь добавить.Я думаю, что это должно быть полезно.