我创建了一个List并添加了2个元素.我将此List传递给方法并将列表初始化为new ArrayList().
当方法返回时,我打印列表的大小,但它仍然显示2.
public class ValueChange {
public void fun(List<Integer> l1){
l1=new ArrayList<Integer>();
}
public static void main(String[] args){
List<Integer> l1=new ArrayList<Integer>();
l1.add(5);
l1.add(6);
System.out.println("Before = "+l1.size());
ValueChange vc=new ValueChange();
vc.fun(l1);
System.out.println("After = "+l1.size());
}
}
Run Code Online (Sandbox Code Playgroud)
这条线:
l1=new ArrayList<Integer>();
Run Code Online (Sandbox Code Playgroud)
在您的fun方法中,实际上不会更改此方法范围之外的列表.您可以更改其中的值,但不能将新列表重新分配给参数.
这实际上是java中的常见错误.如果您想知道如何在方法中传递参数,请阅读这篇文章.
| 归档时间: |
|
| 查看次数: |
83 次 |
| 最近记录: |