Suppose to have a type `Pair<K,V>` declared in your package. Given an object instance of:

```
 Pair<Integer, Integer> obj = new Pair<>(1,23);

```

I want to retrieve the type arguments `Integer` and `Integer` to which `K` and `V` are respectively associated. By the way, it seems to be that using Java standard reflection I cannot access to the actual class with the instances within Java.

```
 TypeVariable<? extends Class<?>>[] parameters = obj.getClass().getTypeParameters();

```

I did not manage to extract such desired information using such parameters. I start to wonder, maybe the type information is kept only at compile time, while at run time the actual type parameter information is removed.