错误消息与此代码行有关
Player a = pl.get(i);
/*
* CODE MODIFTYING VARIABLES WITHIN THE OBJECT a
*/
pl.get(i) = a;
' PL'是Player类
的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 :(得分:0)
pl.get(i)是值类型(rvalue),不能分配新值。
只能为左值分配值。
您必须使用ArrayList的set方法覆盖列表中的值:
pl.set(i, a);
此外,当调用pl.get(i)来检索您命名为a的元素时,您可以使用此引用以任何您想要的方式更改a
。你不必将对象写回列表,因为引用仍在那里。