如何在Java中保存ArrayList中的数据?
我在Company类中有一个made方法,并在PayrollApp类中调用它。首先!它工作正常,但每当我第二次调用该方法时,它就会抛出indexoutofboundException。我正在控制台上运行此应用程序,而不使用数据库。我想将所有employees对象添加到该arraylist中如何在Java中保存ArrayList中的数据?,java,arrays,arraylist,collections,Java,Arrays,Arraylist,Collections,我在Company类中有一个made方法,并在PayrollApp类中调用它。首先!它工作正常,但每当我第二次调用该方法时,它就会抛出indexoutofboundException。我正在控制台上运行此应用程序,而不使用数据库。我想将所有employees对象添加到该arraylist中 public class Company { private ArrayList<Employee> _employeeList = new ArrayList<Employee&g
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);
上市公司{
private ArrayList_employeeList=new ArrayList();
公共作废setAddEmployee(员工c){
_雇员名单。添加(c);
}
}
员工emp=新员工(_name,_empId);
emp.SETNUMOFhours perweek(_hoursPerWeek);
emp.setHourlySalary(_hourlySalary);
emp.setManagerName(_manager);
Company com=新公司();
com.setAddEmployee(emp);
问题在于索引i
是公司的静态变量,而ArrayList\u employeeList
不是
因此,变量i
由对象的所有实例共享,而ArrayList\u employeeList
是一个实例变量
因此,第一次使用company.setAddEmployee()时,它可以正常工作,因为arrayList和i都是空的,i都是0,所以它可以工作,i增加到1
但下次对不同的公司
对象执行company.setAddEmployee()
时,该对象的arrayList为空,但i为1
,因为变量i
是静态的,并且由公司
类的所有实例(对象)共享
您需要将
ArrayList
也设置为静态,或者需要将i
设置为非静态(成员变量),尽管您甚至可能不需要i
(我们也可以执行\u employeeList.add()
,它将在下一个可用索引中添加),但我无法评论您如何解决此问题,因为我不确定您试图用代码实现什么。它发生在哪一行?你是否在谷歌上搜索了例外,试图了解它是什么,以及它为什么会发生?您是否使用调试器逐步检查了代码?要添加到数组列表
,只需调用\u employeeList.add(c)代码>不需要索引。可能是因为索引计数器使用的是静态int
字段。将其保留在执行处理的方法的范围内。我有_Employee的ArrayList。我希望无论何时添加新员工,都应该将其添加到arraylist中。我从代码中删除了“I”,但仍然不起作用,您仍然会收到相同的错误吗?如果是,请使用最新代码和issue@hemant最新的错误是什么?从哪一行开始?堆栈跟踪会很好。