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;