title: Java generics name clash , has the same erasure
body: <p>I have superclass Foo. And a class Bar extending it.</p>
  
  <pre><code>public class Bar extends Foo
  </code></pre>
  
  <p>Function in Foo:</p>
  
  <pre><code>protected void saveAll(Collection&lt;?&gt; many)
  </code></pre>
  
  <p>Function in Bar:</p>
  
  <pre><code>public void saveAll(Collection&lt;MyClass&gt; stuff) {
     super.saveAll(stuff);
  }
  </code></pre>
  
  <p>Getting error :</p>
  
  <pre><code> Name clash: The method saveAll(Collection&lt;MyClass&gt;) of type Bar has the same erasure as saveAll(Collection&lt;?&gt;) of type Foo but does not override it.
  </code></pre>
  
  <p>What am I doing wrong?</p>