我的目标是开发一个可以输出指定类的对象的类。
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
.如果我传入一个 ParameterizedType(它本身很难生成),则没有 cast
使用方法。
有没有办法走出这个泥潭?
最佳答案
我认为super type tokens可能会为您解决这个问题。
关于java - 如何将参数化类作为参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4980011/