Здесь моя проблема: учитывая эти классы
class A {}
class B extends A {}
Этот код компилируется:
List<Class<? extends A>> list = Arrays.asList(B.class, A.class);
И это не так:
List<Class<? extends A>> anotherList = Arrays.asList(B.class);
Что дает?
ОБНОВЛЕНИЕ: Этот код компилируется в Java 8. По-видимому, из-за "Улучшенного ввода типа".