ジェネリック、関数型インターフェイス、ラムダ式、集計操作について勉強しています。私はこれらの技術を個別には理解していますが、それらをまとめて概念化すること、つまりそれらがどのように連携するかを理解するのに苦労しています。
interface Collector(T,A,R)というタイトルの Java Doc から抜粋した例を使用します。
Collector(Widget,?,TreeSet(Widget)) into = Collector.of(TreeSet::new, TreeSet::add, (left,right)->{left.addAll(right); return left;});
前述の javadoc の上記のメソッドには、次の動作パラメータがあります。
Supplier(A) supplier,
BiConsumer(A,T) accumulator,
BiConsumer(A) combiner
上記の例で提供されているサプライヤは、メソッド参照: を使用していますTreeSet::new
。
TreeSet::new
結果のサプライヤとして使用される と、アキュムレータとの関係は?..コンバイナの関係とは?
これはどのように機能しますか、これがサプライヤーである理由がわかりません!?
この幅広い主題に関するドキュメントへのリンクは、多くの金と銀の価値があります。お待ち頂きまして、ありがとうございます。