在Java中通过引用传递对象

时间:2011-05-18 12:27:19

标签: java

  

可能重复:
  How to pass by reference in Java

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

喜欢C#

public static void SomeMethod(ref Object obj)
{
...
}

5 个答案:

答案 0 :(得分:25)

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

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

答案 1 :(得分:25)

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

答案 2 :(得分:4)

没有。 Java只是按值传递。

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

答案 3 :(得分:2)

您必须创建一个引用类。幸运的是,有一个。试着看AtomicReference。请注意,它用于并发,因此可能不适合。

另一个想法是传递一个长度为1的Object数组。

答案 4 :(得分:0)

  

传递参考数据类型参数

     

参考数据类型参数等   作为对象,也会传入   方法的价值。这意味着什么时候   方法返回,传入   参考仍然引用相同的   像以前一样对象。但是,值   对象的字段可以更改   在方法中,如果他们有正确的   访问级别。

来源: Java Tutorial> Passing Information to a Method or a Constructor