title: What purpose do generic constructors serve in Java?
body: <p>As everyone knows you can have a generic class in Java by using type arguments:</p>
  
  <pre><code>class Foo&lt;T&gt; {
      T tee;
      Foo(T tee) {
          this.tee = tee;
      }
  }
  </code></pre>
  
  <p>But you can also have generic <em>constructors</em>, meaning constructors that explicitly receive their own generic type arguments, for example:</p>
  
  <pre><code>class Bar {
      &lt;U&gt; Bar(U you) {
          // Why!?
      }
  }
  </code></pre>
  
  <p>I'm struggling to understand the use case. What does this feature let me do?</p>