-3

I am writing a void method that needs to change the value of stocklevel in my object part0. However, there shows an error when i try to write the logic.

AssembledStockLevel

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

Code showing error

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

The error says left-hand side of an assignment must be a variable??

basica is a variable i made to refer to part0 object

danielb
  • 51
  • 1
  • 6
  • what is assmembedstocklevel? – Prasad Kharkar Oct 16 '15 at 06:15
  • just updated. empty variable that get assigned in calculateAvailForAssembly() method – danielb Oct 16 '15 at 06:17
  • 2
    Because it's invalid syntax. Your left-hand side is a method invocation, not a variable. – Jeroen Vannevel Oct 16 '15 at 06:17
  • Same code base question from you few hours ago [Trouble with setter method and returning getter](http://stackoverflow.com/questions/33161946/trouble-with-setter-method-and-returning-getter). – YoungHobbit Oct 16 '15 at 06:20
  • it's not the same. that question was based on trying to get the assembledstocklevel. This one is changing the stocklevel of part objects not the assembledstocklevel – danielb Oct 16 '15 at 06:34

3 Answers3

2

basica.getStockLevel() returns a reference to a value. You can't assign anything to that reference. You should have a setter method for stock level and use it to update its value.

Something like:

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

You're using a reference to set a value, use a setter method.

basica.setStockLevel(basica.getStockLevel() - assembledstocklevel);
James S
  • 308
  • 1
  • 7
1

You cant assign anything to a method. You have set through a setter method like :

basica.setStockLevel(basica.getStockLevel() - assembledstocklevel)
Rahman
  • 3,755
  • 3
  • 26
  • 43