我正在从文本文件中读取数据 其中包括有关员工详细信息的信息 如下:
H,名称,社交号码,小时数,费率
S,姓名,社会号码,工资
并将它们添加到两个列表中。
如果他们是小时工:
H.add(new Hourly(name ,number,hour,rate);
否则,如果他们得到薪水:
S.add(new salaried(name,number);
问题是:如何在将对象添加到列表之前为员工增加薪水?
每小时=费率*小时
薪水=工资
我有属性工资
和mutator方法设置双倍薪水
我还将对象添加到列表中后设置薪水, 但是最后的薪水是文本 前1500年,后2000年
答案 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());