将不同类的对象添加到Arraylist-java中时出现问题

将不同类的对象添加到Arraylist-java中时出现问题,java,class,methods,arraylist,variable-assignment,Java,Class,Methods,Arraylist,Variable Assignment,我正在做一个项目,我有3个不同的类来创建对象CommissionEmployee、SalariedEmployee和HourlyEmployee。我需要将它们添加到主类中的arraylist中,但不确定哪里出错 公营公司{ public String companyName; public SalariedEmployee owner; public ArrayList<SalariedEmployee> salariedEmployee; public ArrayList<H

我正在做一个项目,我有3个不同的类来创建对象CommissionEmployee、SalariedEmployee和HourlyEmployee。我需要将它们添加到主类中的arraylist中,但不确定哪里出错

公营公司{

public String companyName;
public SalariedEmployee owner;
public ArrayList<SalariedEmployee> salariedEmployee;
public ArrayList<HourlyEmployee> hourlyEmployee;
public ArrayList<CommissionEmployee> commissionEmployee;


public Company (String companyName, SalariedEmployee owner){
    this.companyName = companyName;
    this.owner = owner;
}
public void addSalariedEmployee (SalariedEmployee SalariedEmployee){
    salariedEmployee.add(SalariedEmployee); **
}

public void addHourlyEmployee (HourlyEmployee HourlyEmployee){
    //HourlyEmployee = new HourlyEmployee (name, position, ratePerHour);
    hourlyEmployee.add(HourlyEmployee);
}
    public void addCommissionEmployee (CommissionEmployee CommissionEmployee){
    //CommissionEmployee = new CommissionEmployee (,, ratePerItem);
    commissionEmployee.add(CommissionEmployee);
}
公共字符串companyName;
公共受薪员工所有者;
公共律师事务所受薪雇员;
公共ArrayList hourlyEmployee;
公共阵列列表专员员工;
上市公司(字符串公司名称、受薪员工所有者){
this.companyName=companyName;
this.owner=所有者;
}
公共无效添加工薪员工(工薪员工工薪员工){
salariedEmployee.add(salariedEmployee)**
}
公共无效地址HourlyEmployee(HourlyEmployee HourlyEmployee){
//HourlyEmployee=新的HourlyEmployee(姓名、职位、每小时费率);
hourlyEmployee.add(hourlyEmployee);
}
公共事务委员会雇员(委员会雇员委员会雇员){
//CommissionEmployee=新的CommissionEmployee(,,ratePerItem);
commissionEmployee.add(commissionEmployee);
}
**这句话是我的编辑告诉我我做错了。
干杯,欢迎提供任何帮助

您尝试将参数命名为与类名相同的名称。类名不能作为参数名。请将参数命名为其他名称。即使是不同大小写的名称也可以,例如:

public void addSalariedEmployee (SalariedEmployee salariedEmployee){

因为该行中有两个名称相同的变量(即salariedEmployee)。以下是修复方法:

public void addSalariedEmployee (SalariedEmployee aSalariedEmployee){
    salariedEmployee.add(aSalariedEmployee); 
}

您正在使用类名作为参数名。它应该是不同的大小写或任何其他名称,而不是类名。 但最好使用驼峰案例名称

举个例子:

public void addSalariedEmployee (SalariedEmployee salariedEmployee)

您的方法参数是单个对象。您试图放置的是列表而不是对象。您必须更改方法参数

当您进行更改时,下面是一个处理迭代器对象的示例

 public static void main(String[] args) {
    Curso curso=new Curso();
    Evento evento=new Evento();
    Publicacion publicacion=new Publicacion();

    List objectList = new ArrayList();

    objectList.add(curso);
    objectList.add(evento);
    objectList.add(publicacion);

    for(Object o:objectList){
        if(o instanceof Curso){
            //do some thing
        }
        if(o instanceof Evento){
            //do some thing
        }
        if(o instanceof Publicacion){
            //do some thing
        }
    }
}

请记住,JAVA使用对象,并且每次都使用对象。对于方法中的每个形式参数名,请将第一个字母改为小写。将变量命名为类名不是语法错误。但显然,这是一种方法。