There's a good discussion of Generics and what they really do behind the scenes over at this question, so we all know that
Using the generified version of class Class allows you, among other things, to write things like
Class<? extends Collection> someCollectionClass = someMethod();
and then you can be sure that the Class object you receive extends
Collection, and an instance of this class will be (at least) a Collection.