在Java中通过引用传递对象

NDe*_*per 12 java

可能重复:
如何通过Java引用传递

是否可以在Java中通过引用传递对象

就像在C#中

public static void SomeMethod(ref Object obj)
{
...
}
Run Code Online (Sandbox Code Playgroud)

Exp*_*lls 28

对象的所有变量都是对象的引用.将对象传递给方法时,您已经传递了对象的引用.如果您不希望原始对象受到影响,则必须先将其克隆.

  • 问题询问如何通过引用(2 层)传递对象的引用,这就是给定的 c# 代码的作用。我认为这个答案误解了这个问题 (4认同)
  • 准确简洁的答案 (2认同)

Jes*_*per 25

不,这在Java中是不可能的.

在Java中,方法的所有参数都按值传递.注意,非基本类型的变量,其是对对象的引用,也由值来传递:在这种情况下,参考由值来传递.请注意,按值传递引用与通过引用传递不同.

  • 您可以传入一个“持有者”对象,它是一个可变引用。一个简单的实现是一个包含 1 个元素的 ArrayList。通常,您只需要多个输出,在这种情况下,您可以使用 Pair 或元组类型。 (2认同)

Boz*_*zho 5

不可以。Java 仅支持值传递。

但你不应该需要这样的东西。您可以传递对象并更改其字段 - 这将反映在调用者中。