title: Difference between generics <T extends Number & Comparable<T>> and T extends Comparable<? extends Number>
body: <p>Can someone explain the difference between <code>&lt;T extends Number &amp; Comparable&lt;T&gt;&gt;</code> and <code>T extends Comparable&lt;? extends Number&gt;</code>? </p>
  
  <p>These look similar to me and both of them compiles fine for sub classes type. The invalid type args shows below error</p>
  
  <blockquote>
    <p>Type parameter is not within bound parameter;should implement
    'java.lang.Number'</p>
  </blockquote>
  
  <p>and</p>
  
  <blockquote>
    <p>Type parameter is not within bound parameter; should extend
    'java.lang.Comparable>'</p>
  </blockquote>
  
  <p>respectively.</p>