0

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

public abstract class RootClass<T extends Iface> {
    protected ApplicationContext applicationContext;
    public T getIfaceBean() {
        return applicationContext.getBean(T.class);
    }
}

但看起来我做不到T.class(由于类型擦除?)。

那么,Java 泛型是否可以执行这样的操作?

如何使用 Java 泛型实现这种类型的功能?

4

1 回答 1

7

因为类型擦除,你不能说T.class因为T在运行时不存在。

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

public T getIfaceBean(Class<T> clazz) {
于 2013-07-30T17:11:10.777 回答