获取泛型类参数的类名

时间:2013-07-30 17:09:21

标签: java generics

我想找到发送到泛型类的参数的类名,如下所示。

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实现此类功能?

1 个答案:

答案 0 :(得分:7)

由于Type Erasure,您不能说T.class因为T在运行时不存在。

您可以做的最好的事情是使用Class<T>类型的参数来获取Class对象:

public T getIfaceBean(Class<T> clazz) {