По сути, я думаю, что вы можете просто сделать
тим, у меня есть суперкласс, который определяет следующий абстрактный метод
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>
? Есть ли способ правильно избавиться от предупреждения?