为什么这个方法在if子句中显示错误?

时间:2015-10-16 06:14:35

标签: java variables methods void

我正在编写一个void方法,需要在我的对象p​​art0中更改stocklevel的值。但是,当我尝试编写逻辑时出现错误。

AssembledStockLevel

public int calculateAvailForAssembly(){
    if(basica.getStockLevel() <= basicb.getStockLevel()){
        assembledstocklevel = basica.getStockLevel();
    } else { assembledstocklevel = basicb.getStockLevel();
    }
    return assembledstocklevel;
}

代码显示错误

   public void changeStockLevel(){
    if(assembledstocklevel <= basica.getStockLevel()){
   [Error is here -->]basica.getStockLevel() = basica.getStockLevel() - assembledstocklevel;
    }
}

错误表示赋值的左侧必须是变量??

basica是我用来引用part0对象的变量

3 个答案:

答案 0 :(得分:2)

basica.getStockLevel()返回对值的引用。您无法为该引用分配任何内容。您应该有一个库存水平的setter方法,并使用它来更新其值。

类似的东西:

basica.setStockLevel(basica.getStockLevel() - assembledstocklevel)

答案 1 :(得分:2)

您正在使用引用来设置值,请使用setter方法。

basica.setStockLevel(basica.getStockLevel() - assembledstocklevel);

答案 2 :(得分:1)

您无法为方法分配任何内容。您已通过以下方式设置了setter方法:

callbacks