2016-05-14 71 views
0

我有一個存儲在ArrayList myValues中的Productclass。 我想每走一遍(例如每個第3個)元素,並讓用戶 爲該類添加一些Integer值。for循環與ArrayList中的java

在我的(...)他告訴我:作業的左側必須是一個變量。我想知道是否我搞砸了一些.get(j)或者如果我必須同步我的方法,以便大小不會改變(沒有多線程,但也許這就是爲什麼我得到一個錯誤? )或解決方案是更簡單。

THX

public void prioPerProduct(){ 

    System.out.println(""); 
    System.out.println("Please enter storing and upgrading cost:"); 

    InputStreamReader isr = new InputStreamReader(System.in); 
    BufferedReader br = new BufferedReader(isr); 

    int storingCost = 0; 
    int ruestCost = 0; 
    int countRes = countRessources; 
    int sizemyValues = myValues.size(); 
    for(int j = 0; j < sizemyValues; j = j+countRes){ 

     System.out.println("Please enter storingcost " + myValues.get(j).getProduct() +":"); 
     try { 
      storingCost = Integer.valueOf(br.readLine()); 
     } catch (NumberFormatException e) { 
      System.out.println("No number entered"); 
      e.printStackTrace(); 
     } catch (IOException e) { 
      System.out.println("No number entered"); 
      e.printStackTrace(); 
     } 

     System.out.println("Please enter upgradingcost " + myValues.get(j).getProduct() +":"); 
     try { 
      ruestCost = Integer.valueOf(br.readLine()); 
     } catch (NumberFormatException e) { 
      System.out.println("No number entered"); 
      e.printStackTrace(); 
     } catch (IOException e) { 
      System.out.println("No number entered"); 
      e.printStackTrace(); 
     } 

     myValues.get(j).setstoringCost(storingCost); 
     myValues.get(j).setupgradingCost(ruestCost); 


    } 


} 
+0

你能提供錯誤的完整堆棧跟蹤嗎? – seza443

+0

nvm,它現在有效,沒有改變任何東西,但突然它有效;) –

回答

1

賦值的左手側必須是一個變量通常通過像這樣引起的:)

methodCall(= somvalue ...

左手方必須是變量而不是方法調用。你的代碼在這方面看起來很好。
聲明模型類和完整堆棧跟蹤的代碼更有幫助。

1

使用set方法來改變一個ArrayList的內部的對象的值。

myValues.set(j,myValues.get().setstoringCost(storingCost)); 
myValues.set(j,myValues.get().setupgradingCost(ruestCost));