2015-10-16 54 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) 
相關問題