title: Is there a way to deal with nested generics using Class<T>
body: <p>If you look at the this vey simple code snipped, is there a valid way to actually call <code>baz</code>?</p>
  
  <pre><code>public class Foo {
      static class Bar&lt;T&gt; {
          public void baz(Class&lt;? extends List&lt;T&gt;&gt; cls) {
  
          }
      }
  
      public static void main(String[] args) {
          Bar&lt;String&gt; bar = new Bar&lt;&gt;();
  
          // does not compile
          bar.baz(ArrayList&lt;String&gt;.class);
          bar.baz((Class&lt;List&lt;String&gt;&gt;) ArrayList.class);
          bar.baz(new ArrayList&lt;String&gt;().getClass());
      }
  }
  </code></pre>