Java 关于assign List.element的错误 List=newarraylist //其他一些代码,请确保列表的大小大于1 System.out.println(list.get(0.getClass().getName());//打印“System.lang.Integer” list.get(0)=1//这个代码不起作用

Java 关于assign List.element的错误 List=newarraylist //其他一些代码,请确保列表的大小大于1 System.out.println(list.get(0.getClass().getName());//打印“System.lang.Integer” list.get(0)=1//这个代码不起作用,java,list,arraylist,variable-assignment,Java,List,Arraylist,Variable Assignment,为什么list.get(0)=1在IDE(eclipse)中给出以下错误 赋值的左侧必须是变量 list.get(0)的类型是Integer,不是吗整数测试=1是正确的 有人能解释一下区别吗?不能将方法调用的结果当作数组访问表达式来赋值。方法调用list.get(0)的结果是一个值,而不是一个变量。这与数组访问表达式不同,例如array[0],它可以被视为变量并位于表达式的左侧 通过在赋值运算符的左侧声明唯一可以被视为“变量”的内容来支持这一点 赋值运算符的第一个操作数的结果必须是变量,否则会发

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

赋值的左侧必须是变量

list.get(0)
的类型是
Integer
,不是吗<代码>整数测试=1是正确的


有人能解释一下区别吗?

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

通过在赋值运算符的左侧声明唯一可以被视为“变量”的内容来支持这一点

赋值运算符的第一个操作数的结果必须是变量,否则会发生编译时错误

此操作数可以是命名变量,如局部变量或当前对象或类的字段,也可以是计算变量,这可能是字段访问(§15.11)或数组访问(§15.10.3)的结果

相反,使用


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

通过在赋值运算符的左侧声明唯一可以被视为“变量”的内容来支持这一点

赋值运算符的第一个操作数的结果必须是变量,否则会发生编译时错误

此操作数可以是命名变量,如局部变量或当前对象或类的字段,也可以是计算变量,这可能是字段访问(§15.11)或数组访问(§15.10.3)的结果

相反,使用


list.get(0)不是一个变量,而是一个常量。所以您需要使用set()或add函数。

list.get(0)不是一个变量,而是一个常量。所以您需要使用set()或add函数。

假设我们有
Integer get(){return 1;}
get()=2
的结果应该是什么?假设我们有
Integer get(){return 1;}
。get()=2的结果应该是什么?我确实使用set方法来解决这个问题。但是为什么get方法返回一个值而不是一个变量呢;这和其他方法一样。所有方法都返回值,除了那些声明为返回
void
的方法——它们不返回任何值。我使用set方法来解决这个问题。但是为什么get方法返回一个值而不是一个变量呢;这和其他方法一样。所有方法都返回值,除了那些声明为返回
void
的方法,它们不返回任何值。
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.set(0, 1);  // index, new value