Java 自体は値渡し呼び出しであり、アドレス値がオブジェクトに渡されます。アドレス値の再割り当ては再ポイントと同等であり、外側の層には影響しません。
そして、ここの Integer オブジェクトにも特別な特性があります。実はこれと似ているかもしれない
次のようにコードをコピーします。
クラス整数{
Final int value; //一度割り当てられると変更できません。
}
これは、呼び出し時に渡されるアドレス値は外側の層を変更できず、オブジェクト自体も変更できないことを示しています。そのため、この値は変更できません
解決策はたくさんあります
1. Java スタイルでは、単一の値の戻り値を使用します。 return i; assign i=foo(); 複数の値には配列またはオブジェクトを使用します。
2.独自のカプセル化クラスを渡します。 class MutableInteger{ int 値;}
3.専用の AtomicInteger アトミック整数オブジェクトを渡します
次のようにコードをコピーします。
public static void main(String[] パラメータ) {
AtomicInteger i=new AtomicInteger(40);
i.intValue();
System.out.println(i);
}
public static void change(AtomicInteger i) {
i.set(55);
}
渡した後に値を変更することもできますが、
推奨されるオプション 1、回避するように努めてください。