我想要类似于 C#
的 ref
关键字的语义。
最佳答案
Java 令人困惑,因为一切都是按值传递的。然而,对于一个引用类型的参数(即不是原始类型的参数),它是引用本身,它是按值传递的,因此它出现 通过引用传递(人们经常声称是这样)。事实并非如此,如下所示:
Object o = "Hello";
mutate(o)
System.out.println(o);
private void mutate(Object o) { o = "Goodbye"; } //NOT THE SAME o!
将 Hello
打印到控制台。如果您希望上面的代码打印 Goodbye
,选项是 使用显式引用,如下所示:
AtomicReference<Object> ref = new AtomicReference<Object>("Hello");
mutate(ref);
System.out.println(ref.get()); //Goodbye!
private void mutate(AtomicReference<Object> ref) { ref.set("Goodbye"); }
关于c# - 我可以在Java中通过引用传递参数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1068760/