Javaの可変引数の値を変更の方法

Java のメソッド引数は、参照渡しではなく、値渡しされます。つまり、メソッド内で引数が変更されても、メソッド外の変数には影響しません。

メソッド内から渡された引数の値を変更したい場合、以下を使用します。

  1. 変更可能なオブジェクトをパラメータとして渡す。変更の必要な値をオブジェクトに収め、そのオブジェクトをパラメータとして渡す。メソッド内部では、オブジェクトのプロパティを修正することでパラメータの値を変更できる。
  2. publicクラスValueWrapper {
    プライベートint value;public int getValue() {
    return value;
    }

    public void setValue(int value) {
    this.value = value;
    }
    }

    public void modifyValue(ValueWrapper wrapper) {
    wrapper.setValue(10);
    }

    public static void main(String[] args) {
    ValueWrapper wrapper = new ValueWrapper();
    wrapper.setValue(5);

    modifyValue(wrapper);

    System.out.println(wrapper.getValue()); // 10を出力
    }

  3. メソッドの戻り値の型を、変更したい値の型にして、返り値として変更した値をreturn文で返す。メソッド呼び出し元で、戻り値を元の変数に代入する。
  4. public int modifyValue(int value) {
    value = 10;
    return value;
    }public static void main(String[] args) {
    int value = 5;

    value = modifyValue(value);

    System.out.println(value); // 10と表示される
    }

実は、引数に渡された値を直接書き換えることはできませんが、オブジェクトのプロパティを書き換えるか、変更後の値を返すことで同じ効果をもたらすことができます。

bannerAds