Конструктор ожидает Class<MyOtherClass<A>>
, а не Class<MyOtherClass>
.Единственный способ удовлетворить компилятор, который я могу представить, - это выполнить серию уродливых последовательностей:
@SuppressWarnings("unchecked")
public MyClass(Class<A> a) {
super(a, (Class<MyOtherClass<A>>)(Class<?>)MyOtherClass.class);
}
Это безопасно для типов, как видно из проверки, поскольку литерал класса для необработанного типа MyOtherClass
такой жечто касается параметризованного MyOtherClass<A>
.Но это не останавливает создание непроверенного предупреждения, которое можно подавить, как указано выше, или просто игнорировать.