2015-04-02 60 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