基本パターン
(String first, String second) -> { return Integer.compare(first.length, second.length) }
型推論可能な場合は、引数の型を省略出来る
左辺の総称型などから推論可能な場合などに型推論される。(first, second) -> { return Integer.compare(first.length, second.length) }
型推論された引数を一つだけ保つ場合には、カッコも省略可能
Arrays.asList(1, 2, 3, 4, 5).forEach(n -> System.out.println(n));
アノテーションなど
メソッドの引数と同じように、、アノテーションやfinal修飾子をつけることも可能(final String first, final String second) -> { return Integer.compare(first.length, second.length) }
戻り値について
lambdaの戻り値は明示しない。常に文脈から型が判断される。以下の例だとintが期待されているところで使用できる。
※分岐などで結果を返したり返さなかったりするようなlambda式は不正となる。(コンパイルエラー)
(final String first, final String second) -> { return Integer.compare(first.length, second.length) }