【问题标题】:Does a List object get passed by reference? [duplicate]List 对象是否通过引用传递? [复制]
【发布时间】:2012-07-08 23:12:29
【问题描述】:

可能重复:
Is Java pass-by-reference?

List 对象是否通过引用传递?换句话说,如果我将一个ArrayList (java.util.ArrayList) 对象传递给一个类,当我更改它时它会自动更新吗?

【问题讨论】:

  • 提示:ArrayListList 在这方面并不特殊。事实上没有类在这方面是特别的。
  • 所有原语和引用在 Java 中按值传递。在您的情况下,您有一个 List 的引用(而不是 List 本身),并且对它的引用将按值传递。

标签: java list


【解决方案1】:

换句话说:如果我将一个ArrayList(java.util.ArrayList)对象传递给一个类,当我更改它时它会自动更新吗?

是的

List 对象是否通过引用传递?

参考值会被传递

public updateList(List<String> names){
 //..
}

说明

当您调用updateList(someOtherList); 时,someOtherList 的值是一个引用,它将被复制到 names(方法中的另一个引用,一点一点)所以现在它们都引用内存中的同一个实例,因此它会变的


【讨论】:

    【解决方案2】:

    是的,因为您只需将ArrayList-Object 的引用传递给您的Object

    【讨论】:

      【解决方案3】:

      如果您在一个方法中添加到列表中,它在第一个方法中的原始引用也将包含新项目。

      java is pass by value, and for objects this means the reference is passed by value.

      【讨论】:

        【解决方案4】:

        是的,您传递给方法的List 是通过引用传递的。在方法内部添加到List 的任何对象在方法返回后仍将在List 中。

        【讨论】:

          猜你喜欢
          • 2021-05-20
          • 2010-10-10
          • 2011-02-12
          • 1970-01-01
          • 2014-02-08
          • 1970-01-01
          相关资源
          最近更新 更多