2015-04-02 53 views
0

該錯誤消息屬於這行代碼不明白錯誤消息(需要:變量,實測值:值)

Player a = pl.get(i); 
/* 
* CODE MODIFTYING VARIABLES WITHIN THE OBJECT a 
*/ 
pl.get(i) = a; 

「PL」是類播放機

此代碼的ArrayList在for循環中,'i'等於for循環所經過的區間數

它指定「(i)」是一個變量,它應該是一個值,它的值是什麼???

基本上,我在我的數組列表中複製Player對象並將其設置爲在for循環中創建的Player對象變量,並更改對象內的值,然後設置新創建的對象(Player a)我的指數在ArrayList(pl.get(i))

我這樣做,所以我不必繼續寫pl.get(i).getFunction()pl.get(i).setFunction ()pl.get(i).CalculateFunction()pl.get(i).blablabla();

我可以使用a.whatever = 83465;

所以問題是,我錯過了什麼?

+0

'pl.get(i)= a;'不會更新您的列表元素。 – 2015-04-02 00:25:51

回答

0

pl.get(i)是一個值類型(右值),不能賦予新的值。 只有左值可以被賦值。 你必須使用ArrayList的設置方法在列表中覆蓋值: pl.set(i, a);

此外,還可通過pl.get當(i)來檢索您命名爲元素,你可以使用這個參考值改變a在任何你想要的方式。您不必將對象寫回列表中,因爲參考依然存在。

+0

好的,謝謝,現在它的工作 – Andrew900460 2015-04-02 00:28:43

+0

,而不是感謝某人的評論,接受他的答案和/或upvote它(見http://stackoverflow.com/help/someone-answers) – muued 2015-04-04 13:05:41