当前位置: 首页 > 面试题库 >

如何获得泛型T的类实例?

贺卜霸
2023-03-14
问题内容

我有一个泛型类Foo<T>。在一种方法中Foo,我想获取type的类实例T,但我无法调用T.class

使用它解决问题的首选方法是什么T.class


问题答案:

简短的答案是,无法找到Java中泛型类型参数的运行时类型。我建议阅读Java教程中有关类型擦除的章节以获取更多详细信息。

一个流行的解决方案是Class将type参数的传递给泛型类型的构造函数,例如

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
    }
}


 类似资料: