7

、、およびの4 つのパラメーターを受け取る( and )java-10のコンストラクターが追加されていることがわかります。IntSummaryStatisticsLongSummaryStatisticsDoubleSummaryStatisticscountminmaxsum

引数なしのコンストラクターが存在する理由を理解しているため、次のように削減で使用されます。

 ..stream().collect(Collectors.summarizingInt(Class::someFunction))

それは理にかなっていますが、なぜ 4 つのパラメーターを持つコンストラクターを追加する必要があるのでしょうか? (私は自分の答えで仮定をしましたが、そうでない場合は喜んで撤回します。)

4

3 に答える 3

5

これらのコンストラクターがどこかで使用されている場合、ソースを検索しようとしましたが、できませんでした。

だから私の唯一の考えは、そのようなオブジェクトを手動で構築するために使用されるということです。これらすべての平均、最小、最大、カウントを計算するメソッドがありarray/List、4 つのパラメーターの を返す代わりに を返すことができるとしIntSummaryStatisticsます。これは以前は不可能でした。したがって、これは (まだ?) 内部で使用することなく API を拡張するだけだと思います。


相対的なCSRから正確に:-

問題:*SummaryStatistics記録された値から再構築することはできません。たとえば、「クローン」またはシリアル形式で送信され、再構成されます。

解決策: コンストラクターを追加して*SummaryStatistics、事前に記録された状態を受け入れます。

于 2018-03-05T08:46:38.370 に答える