2016-05-14 42 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));