无法向java中的方法返回值添加值



我在每个员工子类中都有一个方法,用于计算他们的收入并返回该值。在我的主要方法中,如果员工在工作场所工作超过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 );
}

最新更新