gpt4 book ai didi

java - 关于分配 List.element 的错误

转载 作者:行者123 更新时间:2023-11-29 03:09:51 25 4
gpt4 key购买 nike

List<Integer> = New ArrayList<Integer>
//some other code,make sure that the size of list is bigger than 1
System.out.println(list.get(0).getClass().getName()); // print "System.lang.Integer"
list.get(0) = 1; //this code does't work

为什么 list.get(0) = 1IDE(eclipse) 中出现以下错误?

The left-hand side of an assignment must be a variable.

list.get(0) 的类型是Integer,不是吗? Integer test = 1; 正确。

谁能解释一下区别?

最佳答案

您不能将方法调用的结果当作数组访问表达式来赋值。方法调用 list.get(0) 的结果是一个值,而不是变量。这与数组访问表达式相反,例如array[0],它可以被视为一个变量,位于表达式的左侧。

JLS, Section 15.26 , 通过在赋值运算符的左侧声明唯一可以被视为“变量”的事物来支持这一点。

The result of the first operand of an assignment operator must be a variable, or a compile-time error occurs.

This operand may be a named variable, such as a local variable or a field of the current object or class, or it may be a computed variable, as can result from a field access (§15.11) or an array access (§15.10.3).

相反,使用 the set method .

list.set(0, 1);  // index, new value

关于java - 关于分配 List.element 的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29991627/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com