我有一个泛型类,Foo<T>
。以Foo
的方法,我想获取T
类型的类实例,但我就是打不通 T.class
.
使用T.class
来解决这个问题的首选方法是什么? ?
最佳答案
简单的回答是,Java 中没有办法找出泛型类型参数的运行时类型。我建议阅读 Java Tutorial 中有关类型删除的章节。了解更多详情。
一个流行的解决方案是将类型参数的 Class
传递到泛型类型的构造函数中,例如
class Foo<T> {
final Class<T> typeParameterClass;
public Foo(Class<T> typeParameterClass) {
this.typeParameterClass = typeParameterClass;
}
public void bar() {
// you can access the typeParameterClass here and do whatever you like
}
}
关于java - 如何获取泛型类型 T 的类实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58940800/