Java 8 では Lambda 式が導入され、ローカル変数にアクセスするための匿名内部クラスがサポートされています。 Java 9 ではラムダ式でローカル変数をキャプチャできるようになり、Java 10 ではローカル変数の型推論が実装され、コンパイラはラムダ式のパラメータと戻り値の型を推論できます。実際のケースでは、さまざまな Java バージョンでのローカル変数アクセスと型推論に対するラムダ式の影響を示します。
#Lambda 式に対する Java バージョンの影響
はじめに
Lambda 式フォーマットは Java 8 で導入された重要な機能で、関数をオブジェクトのインスタンスとして宣言できるようになります。 Java 8 より前では、関数を実装するには匿名内部クラスしか使用できませんでした。Java 8
Java 8 では、ラムダ式は矢印記号 (->) で表され、入力パラメーターと関数本体が区切られます。例:(x) -> x + 1
Java 9
Java 9 では、ラムダ式のローカル変数キャプチャのサポートが導入されています。これは、ラムダ式が、最終型でなくても、スコープ内のローカル変数にアクセスできるようになったということを意味します。例:int y = 5; (x) -> x + y
Java 10
Java 10 では、ラムダ式のローカル変数型推論のサポートが導入されています。これは、明示的に宣言しなくても、コンパイラがラムダ式パラメータの型と戻り値の型を推測できることを意味します。例:(x, y) -> x + y
実際的なケース
次は、さまざまな Java バージョンが Lambda 式に与える影響を示す実際的なケースです:// Java 8 public static void main(String[] args) { int y = 5; // 匿名内部类 Runnable runnable = new Runnable() { @Override public void run() { System.out.println(y); // 无法访问 } }; // Lambda 表达式 Runnable lambda = () -> System.out.println(y); // 无法访问 }
// Java 9 public static void main(String[] args) { int y = 5; // 匿名内部类 Runnable runnable = new Runnable() { @Override public void run() { System.out.println(y); // 可以访问 } }; // Lambda 表达式 Runnable lambda = () -> System.out.println(y); // 可以访问 }
// Java 10 public static void main(String[] args) { int y = 5; // Lambda 表达式,自动推断类型 Runnable lambda = (x) -> { System.out.println(x + y); }; }
以上がさまざまな Java バージョンが関数に与える影響の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。