Java 如何获取泛型参数类型的类实例

Java 如何获取泛型参数类型的类实例,java,generics,Java,Generics,在代码中,如果我写这样的代码行: GClass<Double> x = new GClass<Double>(); GClass x=新的GClass(); 比如说,这门课是这样的: public static class GClass<T> { private T value = null; public GClass() { // What is T? } } 公共静态类GClass{ 私有T值=null; 公共GClass()

在代码中,如果我写这样的代码行:

GClass<Double> x = new GClass<Double>();
GClass x=新的GClass();
比如说,这门课是这样的:

public static class GClass<T> {
  private T value = null;
  public GClass() {
    // What is T? 
  }
}
公共静态类GClass{
私有T值=null;
公共GClass(){
//什么是T?
}
}

在我插入问题“T是什么?”的地方,我不想要值(即
null
),而是想要它的类型(即
Double
)。

在执行时,除非您添加一个构造函数参数来获取
Class
参数,并在您的情况下使用
Double.Class
传递调用它。然后可以存储该类并在以后使用它

这是由于类型擦除。。。基本上,泛型只是插入适当类型转换并检查事情是否正常的编译器魔法

请参阅本节的精彩部分


您可能还想阅读Neal Gafter关于和的博客帖子。

在什么情况下您需要这样做?实例化gClass的客户机肯定知道它的参数化类型吗?