ホームページ >Java >&#&チュートリアル >ラムダ式変数を事実上 Final にする必要があるのはなぜですか?
ラムダ式では、式のスコープ内で使用される変数は、final または「実質的にfinal」であることが期待されます。この制限は、キャプチャされた変数に課せられる不変性要件から生じます。
Java 言語仕様 (JLS) の §15.27.2 でこれについて説明しています。
「実質的に最終変数に対する制限により、動的変数へのアクセスが禁止されます」 - ローカル変数の変更。そのキャプチャにより同時実行の問題が発生する可能性があります。"
バグのリスクを最小限に抑えるには、キャプチャされた変数は決して変更可能ではないことが決定されました。これにより、ラムダによってアクセスされる値がその実行を通じて一貫性を保つことが保証されます。
この制限は、ラムダ式だけでなく、匿名の内部クラスにも適用されます。したがって、そのような構成内で使用される変数が、final として宣言されるか、事実上 Final (つまり、値が 1 回だけ割り当てられ、決して変更されない) であることを確認することが重要です。
以上がラムダ式変数を事実上 Final にする必要があるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。