是否可以在Java中通过引用传递对象
喜欢C#
public static void SomeMethod(ref Object obj)
{
...
}
答案 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