title: Java Generics insertion on wildcards
body: <p>Java is not allowing me to add a subclass of the Type declaration in this class</p>
  
  <pre><code>public class Exam&lt;T&gt; {
  
      public  void set(Holder&lt;? super T&gt; hold){
  
      }
      public  T get(Holder&lt;? extends T&gt; holder){ return holder.get();}
  
  
      public static void main (String[] args){
          Exam&lt;Question&gt; eq = new Exam&lt;Question&gt;();
          eq.set(new Holder&lt;Identification&gt;());
      }
  }
  </code></pre>
  
  <p>Where Identification is a subclass of Question.</p>
  
  <p>and this how my holder class looks like</p>
  
  <pre><code>public class Holder&lt;T&gt; {
      T item;
  
      public void set(T item){ this.item = item; }
      public T get(){return item;}
  }
  </code></pre>
  
  <p><strong>ERROR</strong></p>
  
  <pre><code>The method set(Holder&lt;? super Question&gt;) in the type Exam&lt;Question&gt; is not applicable for the arguments (Holder&lt;Identification&gt;)
  </code></pre>