ラムダ式とは?

ラムダ式とは、関数をその場で作る機能のことだよ!
・メソッドの実態が生まれるタイミング
メソッドとして定義した処理ロジック(関数)の実態は、いつ必要とされるか否かにかかわらず、プログラム動作時に自動的に生成される。
メソッドを変数に格納する?
import java.util.function.*; public class Main{ public static int sub(int a, int b){ return a-b; } public static void main(String[] args){ //subメソッドの処理ロジックを変数funcに代入する IntBinaryOperator func = Main::sub; //変数名= クラス名::そのクラスの静的メソッド名 //変数名= クラス名::そのインスタンスのメソッド名 //変数funcに格納されている処理ロジックを使用する int a = func.applyAsInt(5, 3); System.out.println("5-3は" + a); } }
・関数オブジェクトを格納可能な型
ある特定の引数と戻り値を持つ関数オブジェクトを格納できるのは、その引数と戻り値を持つメソッド宣言を含んだSAMインターフェースの型
・SAMインターフェースとは
抽象メソッドを1つしか含まないインターフェースのことです。
SAMとは(Single abstract method)
java.util.functionパッケージに準備されたSAMインターフェース

名称 | 引数 | 戻り値 | メソッド名 |
IntBinaryOperator | int, int | int | applyAsInt |
IntoLongFunction | int | long | applyAsLong |
IntToDoubleFunction | int | double | applyAsDouble |
IntConsumer | int | void | accept |
IntSupplier | void | int | getAsInt |
IntPredicate | int | boolean | test |
1 2