Vector<Integer> Vector<Vector<b>> Vector<z> Vector<? super B<a>> class A { } class B<a> extends A { } class D<a,b> { } class E<a,b> extends D<B<a>,b> { } class Number {} class Integer extends Number {} class AbstractList<a> extends List<a> {} class List<a> {} class Vector<a> extends List<a> {} class Stack<a> extends Vector<a> {} class Test extends Vector<Integer> {} /*D<? extends B<? extends Integer>, ? extends A> Test<? extends B<a>,A>*/ /*D<B<? super Integer>, D<a, b>> D<? super B<b>, ? super E<? extends Number, b>>*/ /*Stack<a> Vector<? extends Number> AbstractList<Integer> List<a>*/