Java generics - получение фактического типа универсального параметра

я прочиталПолучить тип универсального параметра в Java с отражением пост, и это заставило меня задуматься, как это было бы возможно. Я использовал решение, которое кто-то разместил и используя код

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

Это, однако, не работает для меня, в результате чего

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

Если я удаляю приведение класса, тип фактического аргументаE, который является определением типа из интерфейса List.

Мой вопрос, поэтому, я делаю что-то здесь не так? Такое поведение я бы ожидал в любом случае, так как типы должны быть удалены во время компиляции, правильно?

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

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