我正在开发一个项目,我有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);
}
** =这是我的编辑告诉我自己错了的路线。 干杯,任何帮助将不胜感激
答案 0 :(得分:3)
您试图将参数命名为与您的类名相同。类名称不能作为参数名称。将参数命名为不同的名称。即使是不同的情况也会很好,例如:
public void addSalariedEmployee (SalariedEmployee salariedEmployee){
答案 1 :(得分:0)
因为在该行中有两个具有相同名称的变量(即salariedEmployee)。以下是您的修复:
public void addSalariedEmployee (SalariedEmployee aSalariedEmployee){
salariedEmployee.add(aSalariedEmployee);
}
答案 2 :(得分:0)
您正在使用类名作为参数名称。它应该是不同的大小写或任何其他名称而不是类名。 但最好有骆驼案名。
只是示例:
public void addSalariedEmployee (SalariedEmployee salariedEmployee)
答案 3 :(得分:0)
您的方法参数为 SINGLE OBJECT 。您试图将 LIST 设为非对象。您必须更改方法参数
当你改变时,这是一个处理迭代器对象的例子。
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可以处理对象并使用它的每个对象。此致