首页 > 解决方案 > 我将如何创建一个将数组添加到数组列表并在其上调用方法的主要方法?

问题描述

我有这个类,它旨在double从数组中获取类型的值,ArrayList并以定义的速率增加它们:

import java.util.ArrayList;

public class Company {
    static ArrayList<Employee> employees;

    public Company() {
        Company.employees = new ArrayList<Employee>();
    }


    public static ArrayList<Employee> getEmployees() {
        return employees;
    }

    public static void setEmployees(ArrayList<Employee> employees) {
        Company.employees = employees;
    }

    public void increaseSalaries(double rate) {
        if (rate <= 0.0) {
            throw new IllegalArgumentException();
        } else {
            for (int i = 0 ; i < employees.size() ; i++) {
                employees.get(i).increaseSalaries(rate);
            }
        }
    }
}

我想编写一个构建数组列表并在其上调用该方法的主要方法,但我不确定如何。到目前为止我有

public static void main(String[] args) {
    Company businesstown;
    HourlyEmployee george;
    MonthlyEmployee ambrose;
    george = new HourlyEmployee("George", "McClellan", "1537", 1.04);
    ambrose = new MonthlyEmployee("Ambrose", "Burnside", "1536", 741.0);
}

但我不确定如何将这些数组添加到ArrayListbusinesstown。我已经尝试了很多组合,.add(george);但我无法做到正确。要么它说

没有为类型 Company 定义方法 add(HourlyEmployee)

或者它编译并抛出一个NullPointerException.

(我应该补充一下,两者HourlyEmployee都是MonthlyEmployee扩展的类Employee

标签: javaarraylistmain

解决方案


在我看来,最好将 ArrayList 设为类的私有成员,并使用 add 方法来添加员工

public class Company {
    private ArrayList<Employee> employees;

    public Company() {
        employees = new ArrayList<Employee>();
    }

    public void addEmployee(Employee e) {
        employees.add(e);
    }
    //rest of code
}

主要是

public static void main(String[] args) {
    Company businesstown = new Company();
    HourlyEmployee george = new HourlyEmployee("George", "McClellan", "1537", 1.04);
    MonthlyEmployee ambrose = new MonthlyEmployee("Ambrose", "Burnside", "1536", 741.0);
    businesstown.add(george);
    businesstown.add(ambrose);
}

推荐阅读