Is there a way to deal with nested generics using Class<T>
<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>