関数型インターフェースとラムダ式の練習②

前記事の続き。
こんどは先程利用した関数型インターフェースをラムダ式で書いてみる。
ジェネリクス型は何となく全部Integerにした。

記法は(実装するメソッドの引数) -> {処理};
略記法はまず左辺から。
インターフェース宣言時に引数の型は決定しているため、型推論により型名の省略可。
引数が一つだけなら()も省略可。
引数なしなら()だけ記述。
右辺。
処理が一文なら{}を省略可。{}を省略しているならreturnも省略可。

一部の例だけ略記法を使っていません。

Function<Integer, Integer> obj1 = (Integer num) ->  
        {
	        return num*3;
        };
int result1 = obj1.apply(22);
System.out.println(result1);// 結果:66
Consumer<Integer> obj2 = num -> System.out.println(num+35);
obj2.accept(57);// 結果:92
Predicate<Integer> obj3 = num -> {
	if(num%2 == 0) {
		return true;
	}
	return false;
};
System.out.println(obj3.test(576));// 結果:true
Supplier<Integer> obj4 = () -> 666;
int result2 = obj4.get();
System.out.println(result2);// 結果:666
UnaryOperator<Integer> obj5 = num -> num/6;
int result3 = obj5.apply(5324);
System.out.println(result3);// 結果:887

先ほどと比較して非常にコードが短い。
よかったですね。