title: What’s the problem with this fluent builder?
body: <p>I've implement a GroupingBuilder that delegates to the groupingBy factory method , What’s the problem with this fluent builder? And how i can make in effective DSL forms?</p>
  <pre><code>import static java.util.stream.Collectors.groupingBy;
  public class GroupingBuilder&lt;T, D, K&gt; {
      private final Collector&lt;? super T, ?, Map&lt;K, D&gt;&gt; collector;
      private GroupingBuilder(Collector&lt;? super T, ?, Map&lt;K, D&gt;&gt; collector) {
          this.collector = collector;
      }
      public Collector&lt;? super T, ?, Map&lt;K, D&gt;&gt; get() {
          return collector;
      }
      public &lt;J&gt; GroupingBuilder&lt;T, Map&lt;K, D&gt;, J&gt;
      after(Function&lt;? super T, ? extends J&gt; classifier) {
          return new GroupingBuilder&lt;&gt;(groupingBy(classifier, collector));
      }
      public static &lt;T, D, K&gt; GroupingBuilder&lt;T, List&lt;T&gt;, K&gt;
      groupOn(Function&lt;? super T, ? extends K&gt; classifier) {
          return new GroupingBuilder&lt;&gt;(groupingBy(classifier));
      }
  }
  </code></pre>