java - 在运行时获取类的泛型类型

标签 java generics reflection

我怎样才能实现这个目标?

public class GenericClass<T>
{
    public Type getMyType()
    {
        //How do I return the type of T?
    }
}

到目前为止我尝试过的所有操作始终返回类型 Object 而不是使用的特定类型。

最佳答案

正如其他人提到的,只有在某些情况下通过反射才有可能。

如果您确实需要该类型,这是通常的(类型安全)解决方法模式:

public class GenericClass<T> {

     private final Class<T> type;

     public GenericClass(Class<T> type) {
          this.type = type;
     }

     public Class<T> getMyType() {
         return this.type;
     }
}

关于java - 在运行时获取类的泛型类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47681648/

相关文章:

java - 如何限制jpa查询

Java:在 super 之前在子类中分配最终变量

java - 使用 Java 泛型的责任链处理程序

java - 为什么带有可变参数的 Java 方法被识别为 transient ?

.net - 运行时将 DataContract 和 DataMember 添加到使用 .Net 反射创建的动态类

java - 在View上持续控制旋转动画

java - Spring Boot : Configuring Spring DataSource for Tests

c++ - 伪造一个虚拟模板函数c++

ios - 如何使用可选的泛型类型创建动态结构

java - 创建注释类实例的数组列表