我正在嘗試建立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
(試過打印堆棧跟蹤),當我嘗試添加。我認爲這應該是有幫助的。
由於懶惰,你能表明你在哪條線上得到異常:)? – 2012-01-11 06:19:27
@Umesh:最後一行,即'salaryDetail.add(sal);'。我還發現這個異常是一個'java.lang.NullPointerException'。 – kanishk 2012-01-11 06:32:44
添加行'salaryDetail = new ArrayList()'在添加方法之前,它應該可以工作或在添加任何東西之前初始化您的salaryDetail在您選擇的任何位置 –
2012-01-11 06:35:03