java - 以编程方式确定泛型类型

标签 java generics

如果这是重复的,我们深表歉意。

有什么方法可以确定一个类是什么泛型类型?

即我想知道T 是什么....

public void doSomething(SomeClass<T> thing)
{
    Class<T> t = ???;
}

谢谢,p。

最佳答案

Java 中没有。您将必须接受参数 Class<T>调用者也必须提供。 (如果愿意,您可以在构造函数中执行此操作,这样类引用将可用于所有类方法。)这是一个常用的 hack 来确定什么 T指在运行时,由于 Java 实现泛型的方式,它在其他情况下不可用。

关于java - 以编程方式确定泛型类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4444877/

相关文章:

java - 如何在 Java 中模拟另一个枚举中的枚举?

java - build.xml 中出现意外的新行

java - Java 中 native 类型(基元)的泛型(或替代方法)

java - 我们可以有一个字段在 Java 中实现两个或多个接口(interface)吗?

java - jpa发现问题

java - 在 Spring Boot 中更改上传的 MultipartFile 的编码

c# - 从通用基类继承,应用约束,并在 C# 中实现接口(interface)

java - 在给定泛型类型输入的运行时获取 Class<Foo<T>>

java - 创建变量中定义的类的 ArrayList

java - libGDX 中的 2D 水效果