My class starts with
public abstract class LastActionHero<H extends Hero>(){
Now somewhere in the code I want to write H.class
but that isn't possible (like String.class
or Integer.class
is).
Can you tell me how I can get the Class
of the generic?
We do it in the following way:
private Class<T> persistentClass;
public Class<T> getPersistentClass() {
if (persistentClass == null) {
this.persistentClass = (Class<T>) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0];
}
return persistentClass;
}