如何将参数化类作为参数传递
我的目标是开发一个可以输出指定类的对象的类。
public class GetMe<T> {
public T get() {
Object obj = generateObject();
return (T) obj;
}
}
现在,我知道由于擦除,这是不可能的。因此,我们可以传入一个类实例并使用它来强制转换。
public class GetMe<T> {
public GetMe<T>(Class<T> clazz) {
this.clazz = clazz;
}
public T get() {
Object obj = generateObject();
return clazz.cast(obj);
}
}
这工作得很好!只要类未参数化。如果是这样,那么我就有问题了。
我不被允许使用.如果我传入一个参数化类型(它本身很难生成),则没有方法可以使用。List<String>.class
cast
有没有办法摆脱这个泥潭?