title: Can't cast to to unspecific nested type with generics
body: <p>I have two classes with nested generics. Is there a way to get rid of the</p>
  
  <p><strong>Type mismatch: cannot convert from <code>Msg&lt;Value&lt;String&gt;&gt;</code> to <code>Msg&lt;Value&lt;?&gt;&gt;</code></strong> error ?
  In the last assignment</p>
  
  <pre><code>public class Value&lt;V&gt; {
      V   val;
  
      public Value(V val) {
          this.val = val;
      }
      @Override
      public String toString() {
          return "" + val;
      }
  }
  
  public class Msg&lt;T&gt; {
  
      T holder;
  
      public Msg( T holder) {
          this.holder = holder ;
      }
      public String toString() {
          return "" + holder;
      }
  
      public static void main(String[] args) {
          Msg&lt;Value&lt;String&gt;&gt;strMsg = new Msg(new Value&lt;String&gt;("abc"));
          // This is OK
          Msg&lt;?&gt;objMsg = strMsg;
          // Type mismatch: cannot convert from Msg&lt;Value&lt;String&gt;&gt; to Msg&lt;Value&lt;?&gt;&gt;   
          Msg&lt;Value&lt;?&gt;&gt;objMsg = strMsg;
      }
  }
  </code></pre>