内部の匿名クラスで非最終変数を参照することがJavaで不可能であるのはなぜですか?簡単な答えは「禁止されているから」ですが、なぜこの便利な機能が禁止されたのでしょうか。たぶん、Javaに欠けている、または「間違った」方法で設計された、ある種の機能があるかもしれません。知りたいのですが。
その理由は、囲んでいるメソッドが戻った後、ローカル変数が存在しなくなったためです。したがって、匿名クラスがインスタンス化されると、変数のコピーが作成されます。Javaが後でローカル変数の変更を許可した場合、匿名クラスは古い値のみを認識します。
Javaの方法は、他の言語で知られている実際のクロージャーとは対照的です。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加