title: Difference between Bounded Type parameter (T extends) and Upper Bound Wildcard (? extends)
body: <p>I know that there was a similar question already posted, although I think mine is somewhat different...</p>
  
  <p>Suppose you have two methods:</p>
  
  <pre><code>// Bounded type parameter
  private static &lt;T extends Number&gt; void processList(List&lt;T&gt; someList) {
  
  }
  
  // Upper bound wildcard
  private static void processList2(List&lt;? extends Number&gt; someList) {
      // ...
  }
  </code></pre>
  
  <p>As far as I know, both methods accepts arguments, that are <code>List</code> of type <code>Number</code> or <code>List</code> of <em>subtype</em> of <code>Number</code>. </p>
  
  <p>But what's the difference between the two methods after all? </p>