簡體   English   中英

如何在 Java 中將數據保存在 ArrayList 中?

[英]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);

問題是索引iCompany的靜態變量,而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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM