In this tutorial on reflection it states:
[...] because generics are implemented via type erasure which removes all information regarding generic typ
In java, Generics is just a place holder. Java Run Time doesn't have any clue about the generics. It's all a compile time trick.
Setting up generics is exactly similar to the scenario, when you declare a field attribute in a class as
T) T extends MyObject).After compilation, all would be wired according to the types. That's what is known as Type Erasure.