java - Java 中的 "ByRef"是什么?

标签 java vb.net

<分区>

我正在将一些代码从 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/

相关文章:

vb.net - 在VB.NET中评估IF语句

java - 添加了 KeyListener 但按下时 keyEvent 不起作用,是什么问题?

使用字母数字字符串进行验证的 Java 程序没有给我所需的输出

java - Retrofit - JSON 数组解析

java - 尽管指定了 'key-type',但 Spring 3.2.4 无法在 <util :map. ../> 中将 String 转换为 Enum

vb.net - 排序 DataGridView 图像列

java - Pojo 类(XML 到对象)

c# - 如何在 C# 中使用 FileOpen (VB.NET)?

VB.NET DragAndDrop 不适用于控件

asp.net - 从代码隐藏扩展 ASP.Net TreeView 节点