[英]How to save data in ArrayList in Java?
我在Company類中有一個 made 方法並在PayrollApp類中調用它。 首先! 它工作正常,但每當我第二次調用該方法時,它都會拋出indexoutofboundException 。 我在控制台上運行這個應用程序而不使用數據庫。 我想將所有員工對象添加到該數組列表中。
public class Company {
private ArrayList<Employee> _employeeList = new ArrayList<Employee>();
public void setAddEmployee(Employee c){
_employeeList.add(c);
}
}
Employee emp = new Employee(_name, _empId);
emp.setNumOfHoursPerWeek(_hoursPerWeek);
emp.setHourlySalary(_hourlySalary);
emp.setManagerName(_manager);
Company com = new Company();
com.setAddEmployee(emp);
問題是索引i
是Company
的靜態變量,而ArrayList _employeeList
不是。
所以變量i
被你的對象的所有實例共享,而你的 ArrayList _employeeList
是一個實例變量。
所以當你第一次做company.setAddEmployee()
,它工作正常,因為 arrayList 和 i 都是空的,所以它可以工作,並且 i 增加到 1。
但是下次當您為不同的company
對象執行company.setAddEmployee()
,該對象的 arrayList 為空,但 i 為1
因為變量i
是靜態的,並由Company
類的所有實例 (Object) 共享。
要么你需要讓ArrayList
靜態的,要么你需要讓i
非靜態(成員變量),盡管你甚至可能不需要i
(我們也可以做_employeeList.add(<element>)
,它會在下一個可用索引),但我無法評論您如何解決該問題,因為我不確定您要使用代碼實現什么目標。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.