我的课开始于
public abstract class LastActionHero<H extends Hero>(){
现在,我想在代码中的某处编写代码,H.class但这是不可能的(就像String.class还是Integer.class现在)。
H.class
String.class
Integer.class
您能告诉我如何获得Class通用药吗?
Class
您可以动态提供类型,但是编译器不会自动为您提供该类型。
public abstract class LastActionHero<H extends Hero>(){ protected final Class<H> hClass; protected LastActionHero(Class<H> hClass) { this.hClass = hClass; } // use hClass how you like. }
顺便说一句:动态地获取它并非不可能,但这取决于如何使用它。例如
public class Arnie extends LastActionHero<MuscleHero> { }
可以确定Arnie.class具有带有MuscleHero的Generic参数的超类。
public class Arnie<H extend Hero> extends LastActionHero<H> { }
H在这种情况下,超类的通用参数就是这样。
H