The short answer is, that there is no way to find out the runtime type of generic type parameters in Java.
A solution to this is to pass the Class of the type parameter into the constructor of the generic type, e.g.
class Moo<T> {
final Class<T> typeParameterClass;
public Moo(Class<T> typeParameterClass) {
this.typeParameterClass = typeParameterClass;
}
public void bar() {
// you can access the typeParameterClass here and do whatever you like
}
}