<分区>
我正在将一些代码从 VisualBasic 转换为 Java,但在 VB 中使用 ByRef 关键字时遇到了问题。这在 Java 中不存在!
我应该如何在 Java 中模拟 ByRef 调用?
编辑:为那些不了解 VB 的人澄清一下,ByRef 在调用函数后在括号中标识一个变量,并使其成为当该变量在函数内部发生变化时,它也会在更高的位置发生变化它被称为与 ByVal 相反,后者只记住变量的值。在方法中更改 ByVal 变量不会影响调用它的变量。
<分区>
我正在将一些代码从 VisualBasic 转换为 Java,但在 VB 中使用 ByRef 关键字时遇到了问题。这在 Java 中不存在!
我应该如何在 Java 中模拟 ByRef 调用?
编辑:为那些不了解 VB 的人澄清一下,ByRef 在调用函数后在括号中标识一个变量,并使其成为当该变量在函数内部发生变化时,它也会在更高的位置发生变化它被称为与 ByVal 相反,后者只记住变量的值。在方法中更改 ByVal 变量不会影响调用它的变量。
最佳答案
你不能。 Java 中的一切都是按值传递的,包括对象引用。但是,您可以创建一个“holder”对象,并在一个方法中修改它的值。
public class Holder<T> {
T value;
public Holder(T value) {
this.value = value;
}
// getter/setter
}
public void method(Holder<Foo> foo) {
foo.setValue(something);
}
关于java - Java 中的 "ByRef"是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18105276/