ラムダ式
ラムダ式とは、「匿名クラスの表記を省略したもの」です。コードを簡潔に記述するための言語仕様で、ラムダ式を使うことでメソッドを簡単に定義し、その場で使用することができます。それでは、どのように省略していくのか、みていきましょう。
ラムダ式に変換する10の手順
- インターフェースの表記を省略
- 修飾子の表記を省略
- 抽象メソッドの戻り値の型を省略
- 抽象メソッドの名前を省略
- 抽象メソッドの引数の型を省略
- returnを省略
- 抽象メソッドのとを省略
- 匿名クラスのを省略
- 演算子を省略
- アロー演算子を記述
最後だけ記述です。
いっぱいありすぎて混乱するかもしれませんが、この10の手順に従えば、匿名クラスの宣言がラムダ式になります。
省略前のソースコードは以下のようになります。
- インターフェースの表記を省略する。
new演算子のところのを削除しました。
- 修飾子の表記を省略する。
runメソッドのを削除しました。
- 抽象メソッドの戻り値の型を省略する。
を削除しました。
- 抽象メソッドの名前を省略する。
を削除しました。
- 抽象メソッドの引数の型を省略します。
このサンプルの場合、runメソッドには引数がないので、省略できるものがありません。引数がある場合は、型を削除してください。
- returnを省略します。
戻り値もないので省略できるものがありません。return文がある場合は、消去してください。
- 抽象メソッドの{ }と;を省略します。
との命令文だけが1行残りました。
- 匿名クラスの{ }を省略します。
セミコロンだけが残りました。
- new演算子を省略します。
- 最後にアロー演算子を記述します。
の後ろに記述します。
まとめるとこうなります。
ラムダ式の部分は
ココです。
とっても簡潔な記述になりました。作成したクラスもこのクラスのみです。
ラムダ式は、Stream APIと呼ばれる言語仕様でよく利用されます。