ホームページ  >  記事  >  Java  >  メソッド参照に関する混乱

メソッド参照に関する混乱

Patricia Arquette
Patricia Arquetteオリジナル
2024-09-23 06:21:14471ブラウズ

Confusion Around Method Referencing

Java のメソッド参照は、メソッドやコンストラクターを明示的に呼び出さずに参照する方法を提供します。これらは、単純なラムダ式を記述するための短縮形と考えることができます。

主なメソッド参照は、静的であることも、インスタンスに関連していることもあります。

Integer::sum;
System.out::println;

これらは、静的メソッド参照 (バインドされた参照とも呼ばれる) の例です。

ただし、次のことを考慮してください。

String::concat

ここで、concatis は静的メソッドではありませんが、これはどのように機能するのでしょうか?これは非バインド参照の例です。コンパイラは、コードの記述方法に基づいて、これがインスタンス メソッド参照であることを理解します。これにより、このようにメソッド呼び出しを簡略化することができます。

コードの記述方法によって、これらのタイプの参照 (特にバインドされていない参照) が決まります。 concat を例に挙げます:

((a, b) -> a + b, "Hello", "World");
// ----------------Is same as -------------
((a, b) -> a.concat(b), "Hello", "World"); // This one could be replaced by mehod referencing

// ----------------Alternative-------------

(String::concat, "Hello", "World");

/* The use of 'a' as the first parameter and calling `concat `of 'a' itself 
gives the compiler an idea of how it should decode `String::concat`*/

したがって、完全なラムダを書き出す代わりに、メソッド参照を使用して簡略化できます。

学び続けますか?

以上がメソッド参照に関する混乱の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。