如何在添加对象到数组列表之前为对象设置薪水

时间:2019-03-22 19:15:45

标签: java

我正在从文本文件中读取数据 其中包括有关员工详细信息的信息 如下:

  

H,名称,社交号码,小时数,费率
  S,姓名,社会号码,工资

并将它们添加到两个列表中。

如果他们是小时工:

H.add(new Hourly(name ,number,hour,rate);

否则,如果他们得到薪水:

S.add(new salaried(name,number);

问题是:如何在将对象添加到列表之前为员工增加薪水?
每小时=费率*小时
薪水=工资
我有属性工资 和mutator方法设置双倍薪水

我还将对象添加到列表中后设置薪水, 但是最后的薪水是文本 前1500年,后2000年

2 个答案:

答案 0 :(得分:0)

如果要在将薪金添加到列表之前进行设置,可以先定义新的条目,然后更改薪金然后添加:

Salaried s = Salaried(name,number);
s.setSalary(computedSalary);
S.add(s);

希望对您有所帮助,

致谢

答案 1 :(得分:0)

您可以考虑使用构建器模式,该模式提供了一种灵活的对象构建方式:

public class Salaried {
  String name;
  String socialNumber;
  Double salary; 

  ...

  public static class Builder {
    String name;
    String socialNumber;
    Double salary;

    public Builder(String name, String socialNumber) {
      this.name = name;
      this.socialNumber = socialNumber;
    }

    public Builder salary(Double salary) {
      this.salary = salary;
      return this;
    }

    public Salaried build() {
      Salaried salaried = new Salaried(name, socialNumber);
      salaried.setSalary(salary);
      return salaried;
    }
  }
}

S.add(new Salaried.Builder("bob","12345678").salary(40000).build());