Code Fix

上級 › ラムダの変数はfinal/実質finalが必要という原因と直し方 › パターン4

ラムダの変数はfinal/実質finalが必要という原因と直し方

ラムダが参照するローカル変数は再代入できません。

 1  import java.util.List;
 2  
 3  public class Main {
 4      public static void main(String[] args) {
 5          for (int n : List.of(1, 2, 3)) {
 6              __________
                     ^
 7              Runnable r = () -> System.out.println(n);
 8              r.run();
 9          }
10      }
11  }
Main.java:7: error: local variables referenced from a lambda expression must be final or effectively final

空欄を埋めてビルドを通す

広告
広告スロット(未設定)

ラムダの変数はfinal/実質finalが必要という原因と直し方

配列で回避する定石も扱います。

このエラーの解説と類題をまとめて見る →

広告
広告スロット(未設定)