我想找到发送到泛型类的参数的类名,如下所示。
public abstract class RootClass<T extends Iface
> {
protected ApplicationContext applicationContext;
public T getIfaceBean() {
return applicationContext.getBean(T.class);
}
}
但看起来我无法做<T extends Iface
(由于Type Erasure?)。
那么, Java Generics
是否可以采取这样的行动?如何使用Java Generics实现此类功能?
答案 0 :(得分:7)
由于Type Erasure,您不能说T.class
因为T
在运行时不存在。
您可以做的最好的事情是使用Class<T>
类型的参数来获取Class
对象:
public T getIfaceBean(Class<T> clazz) {