Since generics were introduced, Class is parametrized, so that List.class produces Class. This is clear.
What I am not able to figure out is how to get a in
The only thing you can do is instantiate List directly and call its getClass():
instantiate(new List() { ... }.getClass());
For types with multiple abstract methods like List, this is quite awkward. But unfortunately, calling subclass constructors (like new ArrayList) or factory methods (Collections.) don't work.