Java泛型 - 获取类型

pet*_*ter 3 java generics

重复:在java中实例化泛型类型

嗨!我是一个尝试Java的人.所以我将如何在java中执行以下操作.

在C#中

public T create_an_instance_of<T>(){
  T instance = default (T);
 // here's usually some factory to create the implementation
   instance =  some_factory.build<T>();
 // or even..
   instance = some_factory.build(typeOf(T) );

 return instance;
}
Run Code Online (Sandbox Code Playgroud)

Mic*_*rdt 5

Java的泛型基于类型擦除.这允许它们向下兼容,但意味着您不能使用type参数本身,因为它在运行时不存在.

你能做的最接近的事是:

public <T> T create_an_instance_of(Class<T> c){
    return c.newInstance(); // or use constructors via reflection
}
Run Code Online (Sandbox Code Playgroud)