上級 › local variables must be final or effectively final の原因と直し方 › パターン2
local variables must be final or effectively 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の回避策として使われます。
次の問題