1

VisualBasic から Java へのコードの変換に取り組んでいますが、VB で ByRef キーワードを使用しているときに問題が発生しました。それはJavaには存在しません!

Java で ByRef 呼び出しをシミュレートするにはどうすればよいですか?

編集:VBを知らない人のために明確にするために、ByRefは関数を呼び出した後に括弧内の変数を識別し、その変数が関数内で変更されると、それが呼び出された場所でも変更されるようにします変数の値のみが記憶される ByVal とは対照的です。メソッドで ByVal 変数を変更しても、それが呼び出された変数には影響しません。

4

2 に答える 2

10

できません。オブジェクト参照を含め、Java ではすべてが値渡しされます。ただし、「ホルダー」オブジェクトを作成し、メソッド内でその値を変更できます。

public class Holder<T> {
    T value;
    public Holder(T value) {
        this.value = value;
    }
    // getter/setter
}

public void method(Holder<Foo> foo) {
    foo.setValue(something);
}
于 2013-08-07T13:54:24.447 に答える