零からの

ゆるーく綴るブログ

ラムダ式(Java)①

Oracle認定Javaプログラマ(Gold, SE8)の合格を目指して勉強中です。

今回はラムダ式について。

ラムダ式とは

SE8で追加され、匿名クラスをシンプルに書くことで可読性を高めることができる。

SE7以前との記述の違いについて以下に示す。

gist.github.com

SE7以前では、new UnaryOperatorとして、applyメソッドをオーバーライドすることを記述していたが、

SE8からはnew UnaryOperatorもapplyメソッドも記述していない。

これは、関数型インタフェースは抽象メソッドが1つしかないため、ラムダ式がどのメソッドのことを書いているのか判断できるため。

記法

ラムダ式は以下のように書くことができる。

(型 hoge) -> { 処理 }

ただし、インタフェース宣言時にはパラメータの型は自明であるため、

(hoge) -> { 処理 }

とすることもでき、さらにパラメータが1つだけであれば、

hoge -> { 処理 }

のように( )も不要になる。

また、処理についても1文の場合は{ }も省略可能である。

Javadoc

先ほどのUnaryOperatorについてJavadocを参照すると、applyのみ抽象メソッドとして定義されていることがわかる。

(その他はstaticまたはdefaultとして定義されている)

UnaryOperator (Java Platform SE 8)






以下の本で少しずつ勉強中。

オラクル認定資格教科書 Javaプログラマ Gold SE 8 (EXAMPRESS)

オラクル認定資格教科書 Javaプログラマ Gold SE 8 (EXAMPRESS)