похожую дичь ловил с опшиналом, только наоборот. в метод нужно было передать Class clazz, а в методе был опшнл, если clazz == null, то должен возвращаться Parent.class. Соответственно Class должен был быть что-то типо <? super Parent>. В итоге оно не работает с генериком, а без генерика - норм, только варнинг на рав тайпс.