title: Collections.sort generic method signature
body: <p>Inside java.util.Collections we have the below method signature</p>
  
  <pre><code>public static &lt;T&gt; void sort(List&lt;T&gt; list, Comparator&lt;? super T&gt; c) 
  </code></pre>
  
  <p>I don't understand why one would specify</p>
  
  <pre><code>Comparator&lt;? super T&gt;
  </code></pre>
  
  <p>instead of</p>
  
  <pre><code>Comparator&lt;T&gt;
  </code></pre>
  
  <p>Which use cases does it cover?</p>