次の文は、無意味ではありますが、構文的には健全です。コンパイル時間:変数のインスタンスが存在しませんUが存在します
final Stream<LongStream> foobar = IntStream.empty()
.flatMap(x -> IntStream.empty()
.mapToObj(y -> IntStream.empty()
.mapToLong(z -> 1))); //compilation error here on `z -> 1`
それが戻って、コンパイルされないが:
のJava:互換性のない型:ラムダ式 の不良戻り型のないインスタンス(S)型変数(S)のUが、ようにJavaの存在を。
:util.stream.Streamあなたがflatmapを遅らせる場合は、すべてが正常に動作しjava.util.stream.IntStream
に準拠します
.mapToObj(..).flatMap(..)
とちょうど.flatMap(..)
の違いは何ですか?余分なフラット・マップ・コールを排除する方法はありますか?
この質問は示しています。 –
関連:[なぜ 'IntStream.flatMapToObj()'が存在しないのですか?](http://stackoverflow.com/q/41295766/5743988) – 4castle
@Joe C:lambdasの内側にあるlambdasを問題なく使用しました。実際の問題に合っていれば、それらを避ける理由はありません。現在のIDEは入力中に苦労しますが、(正しい)コードが書かれると円滑に動作します。 – Holger