По сути, я думаю, что вы можете просто сделать

тим, у меня есть суперкласс, который определяет следующий абстрактный метод

public abstract <T extends Interface> Class<T> getMainClass();

Теперь, если я хочу переопределить его в каком-то подклассе

public Class<Implementation> getMainClass(){
    return Implementation.class;
}

Я получаю предупреждение о безопасности типов и непроверенных преобразованиях:

Тип безопасности: тип возвратаClass<Implementation> заgetMainClass() от типаSubFoo необходимо непроверенное преобразование, чтобы соответствоватьClass<Interface> от типаSuperFoo

неClass<Implementation> подпадают подClass<T> если<T extends Interface>? Есть ли способ правильно избавиться от предупреждения?

Ответы на вопрос(1)

Ваш ответ на вопрос