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;