gpt4 book ai didi

java - 列表的引用未重置

转载 作者:行者123 更新时间:2023-12-02 17:48:33 25 4
gpt4 key购买 nike

我创建了一个列表并向其中添加了 2 个元素。我将此列表传递给一个方法,并将该列表初始化为 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());
}
}

最佳答案

行:

l1=new ArrayList<Integer>();

在您的 fun 方法中实际上不会更改此方法范围之外的列表。您可以更改其中的值,但不能为您的参数重新分配新列表。

这实际上是java中的一个常见错误。如果你想知道方法中的参数是如何传递的,请阅读这篇post .

关于java - 列表的引用未重置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20127555/

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