【发布时间】:2019-11-02 01:33:37
【问题描述】:
如果 java 是仅通过值传递,那么为什么这里它会更改列表中的值
我也尝试过使用 Object
public static void main(String[] args) {
List<Integer> list = new ArrayList<>();
list.add(12);
list.add(15);
list.add(45);
addExternally(list);
ListIterator<Integer>
iterator = list.listIterator();
while(iterator.hasNext()) {
System.out.println("Value is : "
+ iterator.next());
}
}
private static void addExternally(List<Integer> list) {
list.add(11);
list.add(12);
}
它不应该采用 addExternally 方法的更改,而是采用原因
【问题讨论】:
-
传递的值是对列表的引用的值。在方法内部重新分配
list在外部将不可见,但更改列表本身(即列表中的元素)将是。
标签: java