我在每个员工子类中都有一个方法,用于计算他们的收入并返回该值。在我的主要方法中,如果员工在工作场所工作超过5年,我想在这个值上加200。我的方法是将员工加入的日期与当前日期进行比较,方法是循环查看我的不同员工数组,并检查其是否超过5年。如果是这样的话,我想得到员工的收入,再加上200。
我在employeeArray.get(i).earnings() += 200;
->quot;期望变量";
相关代码:
测试等级
for(int i = 0; i < employeeArray.size(); i ++){
if(employeeArray.get(i).getDateJoined().compareTo(LocalDate.of(2015, 10, 16)) <= 0)
{
employeeArray.get(i).earnings() += 200;
}
}
员工等级
public abstract double earnings();
员工(老板(收入方法示例(员工子类(
public double earnings() {
try{
if(weeklySalary < 100){
throw new Exception();
}
}
catch (Exception lowWageException){
System.out.println();
}
return weeklySalary;
}
employeeArray.get(i).earnings() += 200;
-> "Variable expected"
是的,有些表达式可以出现在赋值的左侧,有些则不能。
例如,
a = 5;
可以,但是
a + 1 = 5;
不是。方法调用(如earnings()
(是不能出现在赋值左侧的东西之一。
为此,您需要一个setter(或类似的东西(,它取一个值,这样您就可以设置收益。
public void setEarnings( double earn ) {
weeklySalary = earn;
}
然后您可以调用它来设置weeklySalary
的值。
if(employeeArray.get(i).getDateJoined()
.compareTo(LocalDate.of(2015, 10, 16)) <= 0)
{
double temp = employeeArray.get(i).earnings() + 200;
setEarnings( temp );
}