c# - 我可以在Java中通过引用传递参数吗?

标签 c# java reference

我想要类似于 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/

相关文章:

java - maven 3.0+ 在 'mvn deploy' 上跳过插件执行

c# - 如何在 C# 中存储对属性的引用?

jquery - 我是否应该担心找不到引用的 *.js 文件?如果是这样,我该怎么办?

c# - 如何正确验证适用于 YouTube v3 Google APIs for .NET 的 Google 帐户

c# - 如果选中复选框,请执行其他操作取消选中

java - 每次访问网站时调用java函数

c++ - 仅使用标准库创建 "Vector of References"的标准实践

c# - 多重性在关系 : EF code first one to one relationship with same primary key and foreign key 中的角色中无效

c# - 在 C# 的中继器中选择 CheckBox 时如何避免页面刷新?

java - 尝试在android中将数据从数据库加载到ListView