Lambda 式とメソッド参照は、Java で関数インターフェイスを定義するための代替方法を提供します。ただし、Consumer の accept メソッドの戻り値の型が void であるにもかかわらず、戻り値の型を持つメソッド参照が Consumer インターフェイスと一致するように見える場合、混乱が生じます。
Brian Goetz は次のように説明しています。この動作は意図的なものです。これにより、開発者は、メソッドを直接呼び出すのと同じ方法で、メソッドを関数インターフェイスに適応させることができます。したがって、値を返すメソッドは、戻り値を無視して Consumer インターフェイスで使用できます。
ラムダ式は 2 つの形式を取ることができます:
メソッド参照は、関数インターフェイスを定義するもう 1 つの方法です。ただし、すべてのメソッドを Consumer でメソッド参照として使用できるわけではありません。具体的には:
値の互換性がない唯一の式形式は (arg) -> です。メソッドReturningVoid(arg)。これは値を返さないためです。
メソッド参照と Consumer の互換性は、戻り値の型と式がステートメントとして使用できるかどうかによって決まります。この概念を理解すると、ラムダとメソッド参照が Java の関数インターフェイスとどのように対話するかを明確にするのに役立ちます。
以上が戻り値の型を持つメソッドを Java のコンシューマ インターフェイスでどのように使用できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。