4
Java 8で型を変換するreduceメソッドにコンバイナーが必要なのはなぜですか
combinerStreams reduceメソッドで果たす役割を十分に理解できません。 たとえば、次のコードはコンパイルされません。 int length = asList("str1", "str2").stream() .reduce(0, (accumulatedInt, str) -> accumulatedInt + str.length()); コンパイルエラーは言う:( 引数の不一致; intはjava.lang.Stringに変換できません) しかし、このコードはコンパイルします: int length = asList("str1", "str2").stream() .reduce(0, (accumulatedInt, str ) -> accumulatedInt + str.length(), (accumulatedInt, accumulatedInt2) -> accumulatedInt + accumulatedInt2); 私はコンバイナーメソッドが並列ストリームで使用されていることを理解しています。つまり、私の例では、2つの中間累積整数を加算しています。 しかし、最初の例がコンバイナなしでコンパイルできない理由や、2つのintを加算するだけなので、コンバイナが文字列からintへの変換をどのように解決するのか理解できません。 誰かがこれに光を当てることができますか?
141
java
java-8
java-stream