ラムダ式を用いて、リストの要素を標準出力へ出力するには、次のように記述する。 List texts = …; texts.forEach(text -> System.out.println(text));
このラムダ式では、メソッドコールしかしておらず、しかもメソッドさえ分かればどのようにコールするかは一意に決まる。
このような場合、ラムダ式ではなく、メソッドを指す記述法を用いることができる。これをメソッド参照と呼ぶ。
上のコードをメソッド参照を使って書き換えると次のようになる。 List texts = …; texts.forEach(System.out::println);
メソッド参照には次の3種類がある。
・クラスメソッド参照
・インスタンスメソッド参照
・コンストラクタ参照
クラスメソッドのメソッド参照は次のように記述する。
クラス名::メソッド名
クラスメソッドがオーバーロードされている場合も、関数型インタフェースのメソッドと引数が一致するクラスメソッドが選択さる。