ラムダ関数変数を使用する場合は、apply
で関数を呼び出す代わりに使用します。Java8 Lambda関数は代替構文を適用します
Function<String, String> mesgFunction = (name) -> "Property "+ name +" is not set in the environment";
Optional.ofNullable(System.getProperty("A")).orElseThrow(() -> new IllegalArgumentException(mesgFunction.apply("A")));
Optional.ofNullable(System.getProperty("B")).orElseThrow(() -> new IllegalArgumentException(mesgFunction.apply("B")));
mesgFunction.apply("A")
には短い構文がありますか?私はmesgFunction("A")
を試して、そのメソッドが存在しないと訴えました。何か不足していますか?もっと短い選択肢はありませんか?
これはラムダの良いユースケースのようではありません。あなたが本当にやろうとしていることですか? 'println'メソッドの' - > 'の右側にすべてを置くだけではどうですか? – Brick
Scalaは実際にそれを行うので、希望があります。ですから、将来のリリースでは、lambdaにメソッド呼び出しの略式バージョンを取得することができます。 –