質問するログイン新規登録

回答編集履歴

1

見栄えが悪いので改行を追加しました。

2016/05/30 08:17

投稿

argius
argius

スコア9396

answer CHANGED
@@ -1,10 +1,12 @@
1
1
  値を変えるというと少し分かりにくいですが、「再代入ができない」と考えると分かりやすいかも知れません。
2
2
  `in++`というのは`in += 1`と同様に再代入の操作ですので、実質的finalの変数には使えません。
3
3
 
4
- そして、キャプチャーした変数の値自体は変更できない、つまり実質的finalでなければなりませんが、
4
+ そして、キャプチャーした変数の値自体は変更できない、
5
+ つまり実質的finalでなければなりませんが、
5
6
  その変数のオブジェクトに内包されるフィールドは書き換えることができます。
6
7
 
8
+ 配列でなくても、
7
- 配列でなくても、例えば`ArrayList`などをキャプチャーして、そこに要素を追加することはできます。
9
+ 例えば`ArrayList`などをキャプチャーして、そこに要素を追加することはできます。
8
10
  配列の場合もオブジェクトのフィールドと同様に書き換えが可能だということです。
9
11
 
10
12
  以下の例はコンパイルエラーになりません。