I am a little bit confused. Java has some reflection methods to call on
But I wonder what is the interconnection between
Class<T> class and
class keyword in java.
Class<T> is just class that uses to represent class itself (methods, fields, annotations) as an object, because everything in java is an object.
class keyword is used on language level syntax to represent an entity.
When class loader loads class into memory permgen( I know that ther is no such memory area now) ,but to represent class as an object we need an object, so in this case
Class<T> comes into play.
Am I correct ? Please explain how does it works ?
In short: in “imperative” context the property
SomeClass.class is an instance of
Class<SomeClass>. The type
Class<SomeClass> represents the
SomeClass class as an object (reflection).