Menge<Integer> Menge<Menge<b>> Menge<z> Menge<? 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 Menge<a> extends List<a> {} class Stack<a> extends Menge<a> {} class Test extends Menge<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> Menge<? extends Number> AbstractList<Integer> List<a>*/