title: Name clash - have the same erasure yet neither overrides the other in method parameter generic
body: <p>I have read all questions and answers about <code>Name clash - have the same erasure yet neither overrides the other</code> but still can't understand how to solve the problem. So,</p>
  
  <pre><code>@Dependent
  public class SimpleFoo {}
  
  @Dependent
  public class AdvancedFoo extends SimpleFoo {}
  
  @Dependent
  public class Parent {
  
      @Inject
      protected void setFooInstance(Instance&lt;? extends SimpleFoo&gt; instance) {}
  }
  
  @Dependent
  public class Child extends Parent {
  
      @Override
      protected void setFooInstance(Instance&lt;AdvancedFoo&gt; instance) {} //Error here
  }
  </code></pre>
  
  <p>How to fix it?</p>