java - 如何获取泛型类型 T 的类实例?

标签 java generics

我有一个泛型类,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/

相关文章:

java - jackson 忽略了 parent 的所有字段

java - 使用 Java 执行 PL SQL

swift - 如何克服“"Generic parameter ' T' is not used in function signature”的错误?

java - 如何将所有类放在一个通用类类型下?

java - Dao 类的通用类

java - 如何格式化 javadoc 注释中的标题?

java - 从可以采用多种形式并从 Java 中的 .properties 文件加载的字符串中提取值的最佳方法

javascript - TypeScript:匿名类工厂

generics - 使用标准的 haskell 泛型库进行类型化类型同构

java - 这个 Java 程序的输出