Genéricos de Java - obtendo o tipo real de parâmetro genérico

eu liObter tipo de um parâmetro genérico em Java com reflexão post e isso me fez pensar como isso seria possível. Eu usei a solução que alguém postou e usando o código

List<Integer> l = new ArrayList<>();
Class actualTypeArguments = (Class) ((ParameterizedType) l.getClass().getGenericSuperclass()).getActualTypeArguments()[0];

Isso, no entanto, não funciona para mim, resultando em

java.lang.ClassCastException: sun.reflect.generics.reflectiveObjects.TypeVariableImpl cannot be cast to java.lang.Class

Se eu remover a conversão de classe, o tipo do argumento real éE, que é a definição de tipo da interface List.

Minha pergunta é, portanto, estou fazendo algo errado aqui? Esse comportamento é algo que eu teria esperado de qualquer maneira, já que os tipos devem ser apagados durante o tempo de compilação, correto?

questionAnswers(3)

yourAnswerToTheQuestion