如果我在 Java 中返回一个 List,返回值是引用还是实际值?

eff*_*iss 6 java collections

不言自明:我需要修改我收到的 ArrayList,但我希望原件保持不变。

我知道这是非常基本的,我不知道为什么我不知道明确的答案。不过我想迟到总比不到好。

Fel*_*ing 5

您将获得原始参考ArrayList

您可以使用 创建列表的浅表clone()副本。

如果您想要深层复制,请看看这个问题。

  • Java *不*通过引用传递。看起来可能是这样,但那是因为没有人真正使用引用传递(除了一些 C++ 程序员),因此你们不知道它的含义。引用(指针)是按值传递的——这在理论上和实践上都是不同的。 (2认同)