8で導入された構文であるラムダ式の使い方についてです。去年の記事でJava8とラムダ式についても別記事で書きたいと言っておきながらやっと手が付けられました。ラムダ式とはJava8から関数型インターフェース(実装が必要なメソッドを1つだけ持つインターフェース)の変数に代入する箇所をラムダ式で渡すことが出来るようになりました。基本文法は以下の通りです。}};ラムダ式で記述した場合は以下のように短く記述することが出来ます。関数型インターフェースは実装が必要な抽象メソッドが1つだけなので、ラムダ式がどのメソッドを実装することになるのかは選択の余地なく決まるのです。そのため、抽象メソッドが複数あるとコンパイルエラーになりますので、ラムダ式で記述することは出来ません。};以上のことからラムダ式とは内部的には匿名クラスと同じであることがわかると思います。}ですが書き方がいくつかあります。慣れないうちは一度匿名クラスで実装してからラムダ式に直すようにすると分かりやすいかもしれません。メソッドで実際に試してみたいと思います。actionを渡さなくてはいけません。}}実行結果は次の通りです。hogefugabarこれをラムダ式で記述すると以下のように短く記述できます。}...また、以下のようにラムダ式(関数型インターフェース)を実装したインスタンスを渡す事も可能です。}...変数のスコープラムダ式の外側で定義された変数を使用する場合、参照する事は可能ですが、値を代入するとコンパイルエラーになります。ある必要があるためです。省略できるようになったために迷いやすいポイントです。代入はコンパイルエラー});外側で変数への代入をした場合でも、ラムダ式の内部で参照しているとコンパイルエラーになってしまいます。例外処理ラムダ式の例外処理は今までの感覚で以下のように書くと、例外を処理しろと言われてコンパイルエラーになってしまいます。e.printStackTrace();}一度catchしてthrowしようとしても出来ません。e.printStackTrace();}このような場合に取れる方法は2つのみです。例外をラムダ式の内部で処理するか、ラムダ式内部で例外をcatchして非チェック例外として再スローするかです。元の例外を取り出す}ただし、チェック例外をスローする関数型インターフェースを作成した場合のみ、外側でcatchする方法が可能です。以下はMyConsumerという例外をスローする関数型インターフェースを作成して外側でcatchできるか試してみました。ワークフローのスケジューリングについて。NOTESスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。