JAVA SE8のラムダ式
2016年04月17日
1、ラムダ式とは
ラムダ式ははLAMBDAと表記し、Java SE 8で導入される新たな表記法です。
またラムダ式はJavaコミュニティでは「クロージャ(Closure)」とも呼ばれています。
このラムダ式は「関数型インターフェース」のメソッドを実装する際に使うことができます。
関数型インターフェースは: 1つのインターフェースに実装が必要なメソッドを1つだけ持つインターフェース
例:
@FunctionalInterface public interface Runnable { public abstract void run(); }
2、ラムダ式のメリット
Javaプログラミングする時に、クラス一度だけ使う場合はあるでしょう。
ラムダ式が出る前に、一度だけ使うクラスは匿名クラスを利用していますが、可読性があまり良くなくコードも冗長になりがちでした。
JAVA SE8ではラムダ式を使用することで、同じことをシンプルに実装することができます。
3、ラムダ式の構文
ラムダ式の構文は以下のとおりです。
{ 実装するメソッドの引数 } -> { 処理 }
4、ラムダ式の使用例
例:
import java.util.function.Function public class Sample { public static void main(String[] args) { Function<String, String> obj = (String str) -> { return "Hello " + str; }; String str = obj.apply("Peta Technique Co.,Ltd") System.out.println(str); } }
実行結果
Hello Peta Technique Co.,Ltd
5、ラムダ式の様々な省略
1、省略なし
(String str) ->
2、型推論による省略
(str) ->
インターフェースの宣言時に引数の型は決まったため、実装時に型を明記しなくでも可能です。
3、()の省略
str ->
引数が一つの場合は()を省略が可能です。ただし引数がない場合や複数の引数がある場合は省略できない。
-> の右辺も省略可能
4、右辺省略なし
{ return "Hello" + str; }
5、{}の省略、returnの省略
処理が1文の場合、{}の省略が可能。
{}を省略している場合、さらにreturnも省略可能
例:
str -> "Hello" + str;