title: Java: bounded wildcards or bounded type parameter?
body: <p>Recently, I read this article:
  <a href="http://download.oracle.com/javase/tutorial/extra/generics/wildcards.html" rel="noreferrer">http://download.oracle.com/javase/tutorial/extra/generics/wildcards.html</a></p>
  
  <p>My question is, instead of creating a method like this:</p>
  
  <pre><code>public void drawAll(List&lt;? extends Shape&gt; shapes){
      for (Shape s: shapes) {
          s.draw(this);
      }
  }
  </code></pre>
  
  <p>I can create a method like this, and it works fine:</p>
  
  <pre><code>public &lt;T extends Shape&gt; void drawAll(List&lt;T&gt; shapes){
      for (Shape s: shapes) {
          s.draw(this);
      }
  }
  </code></pre>
  
  <p>Which way should I use? Is wildcard useful in this case?</p>