2015-10-16 61 views
-3

我正在写一个无效方法,需要更改我的对象p​​art0中stocklevel的值。但是,当我尝试编写逻辑时显示错误。为什么此方法在if子句中显示错误?

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是变量i做出参考PART0对象

+0

什么是assmembedstocklevel? –

+0

刚刚更新。在calculateAvailForAssembly()方法中分配的空变量 – danielb

+2

因为它的语法无效。你的左边是一个方法调用,而不是一个变量。 –

回答

2

basica.getStockLevel()返回到一个值的引用。您不能为该参考指定任何内容。你应该有一个库存水平的setter方法,并用它来更新它的值。

喜欢的东西:

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

,但我意识到我不认为我想要的方法无效? basica(part0)stocklevel没有变化。这是哦,让人困惑的笑lol – danielb

+0

@danielb我失去你了:( –

2

您使用的是基准设定值,使用setter方法。

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

你不能分配任何东西给方法。你已经通过setter方法设置,如:

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