上級 › ラムダの変数はfinal/実質finalが必要という原因と直し方 › パターン2
ラムダの変数はfinal/実質finalが必要という原因と直し方
ラムダが参照するローカル変数は再代入できません。
1 import java.util.List; 2 3 public class Main { 4 public static void main(String[] args) { 5 int[] sum = {0}; 6 List.of(1, 2, 3).forEach(n -> __________________); ^ 7 System.out.println(sum[0]); 8 } 9 }
Main.java:6: error: local variables referenced from a lambda expression must be final or effectively final
空欄を埋めてビルドを通す
配列変数そのものは再代入していないので、要素の書き換えは許されます。実質finalの回避策として使われます。
次の問題