1

好的,我有一个难题。我会直截了当地说,我正在做家庭作业,但我遇到了一个绊脚石。我确定我遗漏了一些明显的东西,但是经过数小时的互联网和教科书搜索以试图找到这个问题的答案后,我撞到了墙上,我希望有人能指出我正确的方向。

我创建了一个名为“employee”的类,它定义了一个员工对象,它具有用于员工姓名和销售总额的 getter 和 setter 方法。它看起来如下:

public class employee {
    private String employeeName;
    private double yearSales;

    public employee(String employeeName, double yearSales)
    {
        this.employeeName = employeeName;
        this.yearSales = yearSales;
    }

    public void setName(String employeeName)
    {
        this.employeeName=employeeName;
    }

    public void setSales(double yearSales)
    {
        this.yearSales=yearSales;
    }

    public String getEmployee()
    {
        return employeeName;
    }

    public double getYearsSales()
    {
        return yearSales;
    } 
}

然后,我有一个旨在实例化包含员工对象的 ArrayList 的方法。我能够创建 ArrayList 并向其添加信息,如下所示:

public ArrayList employeeArray(String name, double sales)
{

    //Instantiate a new ArrayList object
    ArrayList employeeList = new ArrayList();

    //Initialize the values in the ArrayList
    employeeList.add(new employee(name, sales));

    return employeeList;

}

我遇到麻烦的地方是尝试从 中打印出名称值ArrayList,如下所示:

System.out.println(employeeList.get(0).getEmployee());

我只添加了一个元素,因此索引值应该是正确的,不久前我在另一门 Java 课程中使用了 ArrayLists,并且能够在我的代码中为这些作业做类似的事情。如果我需要对此进行进一步澄清,我将很乐意。当然,非常感谢您对此提供的任何帮助。

4

3 回答 3

4

如果你的 Java SE >= 5,你应该使用泛型ArrayList,所以不要使用ArrayList<employee>. 否则,您需要将其类型从Object转换为Employee

System.out.println(((employee)employeeList.get(0)).getEmployee());

此外,Java 中的类和接口名称以大写字母开头。

于 2012-08-24T02:33:55.267 回答
3
public ArrayList<employee> employeeArray(String name, double sales)
{

    //Instantiate a new ArrayList object
    ArrayList<employee> employeeList = new ArrayList<employee>();

    //Initialize the values in the ArrayList
    employeeList.add(new employee(name, sales));

    return employeeList;

}
于 2012-08-24T02:34:39.360 回答
0

您试图在ArrayList每次调用employeeArray()方法时实例化一个新的。尝试使用此方法维护一个公共ArrayList并添加元素。

使用泛型
也 +1 如果您是 Java 新手,请阅读此链接:“Java Programming Style Guide (Naming Conventions)”

假设您有一个EmployeeList定义此方法的类employeeArray(),您可以更新它以维护列表中的新名称,如下所示(请注意,这是一个示例解决方案,显然欢迎您根据需要对其进行定制):

public class EmployeeList{
    private ArrayList<Employee> employeeList;

    public EmployeeList(){
        //Initializing the employee arraylist
        employeeList = new ArrayList<Employee>();
    }

    public ArrayList<Employee> employeeArray(String name, double sales){
        //Initialize the values in the ArrayList
        employeeList.add(new Employee(name, sales));

        return employeeList;
    }
}

还要注意上面代码中泛型的使用和命名约定。这可能对您有帮助。

于 2012-08-24T02:38:40.940 回答