我试图传递一个类及其类型作为参数,但看起来 java 中不允许这样做。有谁知道如何使用泛型通过 T 类或 P 类?请检查这个简单的示例:
class Car<P> {
}
class Sport {
}
main() {
Sport sport = createInstance(Sport.class); // This is fine.
Car car = createInstance(Car.class); // This is also fine.
Car<Sport> sportCar = createInstance(Car<Sport>.class) // but this is not allowed. How can I pass "<Sport>" type?
}
public <T> T createInstance(Class<T> classOfT) {
T instance = classOfT.getDeclaredConstructor().newInstance();
return instance;
}
最佳答案
由于类型删除,
Car<Sport> sportCar = createInstance(Car.class)
就足够了。通用类型信息<Sport>
仅存在于编译时,而不存在于运行时。
关于java - 如何使用泛型将类及其类型作为参数传递?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57894019/