回答編集履歴
1
iの値が間違っていたので修正。
answer
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Integerなどのラッパークラスであっても、コンストラクタで決めた値を書き換えることは不可能です。
|
2
2
|
|
3
|
-
戻り値を持たないメソッドから何らかの結果を受け取るテクニックとして、渡した引数の中身を書き換えるものに「長さ1の配列として渡して、配列の中身を書き換える」という方法があります。しかし、この方法では```i```自体が書き換わっているわけではないので、funcを呼び出したあとでも```i```は
|
3
|
+
戻り値を持たないメソッドから何らかの結果を受け取るテクニックとして、渡した引数の中身を書き換えるものに「長さ1の配列として渡して、配列の中身を書き換える」という方法があります。しかし、この方法では```i```自体が書き換わっているわけではないので、funcを呼び出したあとでも```i```は0のままです。気をつけてください。
|
4
4
|
```Java
|
5
5
|
public static void main(String[] args) {
|
6
6
|
Integer i = new Integer(0);
|
@@ -8,7 +8,7 @@
|
|
8
8
|
a[0] = i;
|
9
9
|
func(a);
|
10
10
|
System.out.println(a[0]);// 2
|
11
|
-
System.out.println(i); //
|
11
|
+
System.out.println(i); // 0
|
12
12
|
}
|
13
13
|
static void func(Integer[] a){
|
14
14
|
a[0] = new Integer(2);
|