Java のメソッド参照構文は、メソッドを参照するための簡潔で読みやすい方法を提供します。この例では、メソッド参照 System.out::println が forEach メソッドへの引数として使用されます。
メソッド参照について
メソッド参照 System .out::println は、System.out によって参照されるオブジェクトを使用して println メソッドを呼び出す必要があることを示します。この場合、System.out は System クラスの静的メンバーであり、標準出力ストリームを表します。
同等のラムダ式
System の同等のラムダ式。 out::println は次のようになります:
<code class="java">o -> System.out.println(o)</code>
このラムダ式は、最初に System.out を評価し、評価された値を取得してから、ラムダ関数を作成します。このラムダ関数は引数 o を受け取り、キャプチャされた System.out オブジェクトで println メソッドを呼び出し、o の値を標準出力に出力します。
Exact Equivalent Lambda Expression
ただし、System.out::println とまったく同等のものには次の手順が必要であることに注意してください:
評価された System.out オブジェクトを変数に保存します:
<code class="java">PrintStream p = Objects.requireNonNull(System.out);</code>
ラムダ式で格納された変数を使用する:
<code class="java">numbers.forEach(o -> p.println(o));</code>
これとまったく同じことで、System.out への変更が影響を与えないことが保証されます。ラムダ式の動作。
以上がSystem.out::println に相当するラムダ式とは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。