不明白错误消息(必需:变量,找到:值)

时间:2015-04-02 00:23:46

标签: java class variables object arraylist

错误消息与此代码行有关

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;

所以问题是,我错过了什么?

1 个答案:

答案 0 :(得分:0)

pl.get(i)是值类型(rvalue),不能分配新值。 只能为左值分配值。 您必须使用ArrayList的set方法覆盖列表中的值: pl.set(i, a);

此外,当调用pl.get(i)来检索您命名为a的元素时,您可以使用此引用以任何您想要的方式更改a。你不必将对象写回列表,因为引用仍在那里。