Generics Java - uzyskanie rzeczywistego typu parametru ogólnego
przeczytałemUzyskaj rodzaj ogólnego parametru w Javie z refleksją post i zastanawiałem się, jak to będzie możliwe. Użyłem rozwiązania, które ktoś opublikował i użył kodu
List<Integer> l = new ArrayList<>();
Class actualTypeArguments = (Class) ((ParameterizedType) l.getClass().getGenericSuperclass()).getActualTypeArguments()[0];
To jednak nie działa dla mnie, w wyniku czego
java.lang.ClassCastException: sun.reflect.generics.reflectiveObjects.TypeVariableImpl cannot be cast to java.lang.Class
Jeśli usunę rzut klasy, typ faktycznego argumentu toE
, która jest definicją typu z interfejsu listy.
Moje pytanie brzmi zatem, czy robię tu coś złego? Takie zachowanie jest czymś, czego i tak bym się spodziewał, ponieważ typy mają być wymazywane podczas kompilacji, prawda?