使用泛型类型时遇到问题。 IDE显示以下错误:
Cannot select from a type variable
我认为这里有类型擦除的问题,但我认为这里存在一些解决方法......
我的代码:
class MyFactory {
public Object getByClass(Class<?> clazz) {
.....
}
}
class<T> MyClass {
private Object myObj = MyFactory.getByClass(T.class); // HERE ERROR, `Cannot select from a type variable`
...
}
如何解决这个问题?
答案 0 :(得分:3)
将Class
对象传递给构造函数。
private final Class<T> clazz;
private Object myObj
public MyClass(Class<T> clazz, MyFactory myFactory) {
this.clazz = clazz;
this.myObj = myFactory.getByClass(clazz);
}