获取泛型类参数的类名

The*_*ect 0 java generics

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

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

But it looks like I can't do T.class(由于类型擦除?).

那么,Java Generics是否可以采取这样的行动?

如何使用Java Generics实现此类功能?

rge*_*man 7

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

你能做的最好的事情是获取一个类型的参数Class<T>来获取Class对象:

public T getIfaceBean(Class<T> clazz) {
Run Code Online (Sandbox Code Playgroud)