Java:无法在ArrayList中打印元素

时间:2012-08-24 02:31:40

标签: java arraylist getter

好吧,我有点难题。我会直截了当地说我正在完成一项家庭作业,而且我已经到了磕磕绊绊的地步。我确信我错过了一些明显的东西,但是经过几个小时的互联网和教科书搜索试图找到答案,我正在靠墙而我希望有人能指出我正确的方向。

我创建了一个名为“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,并且能够在我的代码中为这些分配做类似的事情。如果我需要澄清更多关于此的内容,我将很乐意。当然,对此的任何帮助都非常感谢。

3 个答案:

答案 0 :(得分:4)

如果你有Java SE&gt; = 5,你应该使用Generics,所以使用ArrayList而不是ArrayList<employee>。否则,您需要将其类型从Object转换为Employee

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

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

答案 1 :(得分: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;

}

答案 2 :(得分:0)

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

使用generics时也+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;
    }
}

另请注意在上面的代码中使用泛型和命名约定。这可能对你有所帮助。