2012-12-13 44 views
0

我有一个类如何在Java中运行时生成泛型类?

myClass<T> 

我也有一个类型,完全无关的类。

如何生成一个myClass,其中泛型参数T是我在java中反射的类型?

我试图

myClass.class.getConstructor() 

但我不能得到任何进一步的比。我在哪里可以具体给出构造函数的通用参数?

+2

你的问题没有意义。泛型不传递给构造函数,例如:'List list = new ArrayList ();'。这是一个编译时检查。 – m0skit0

+9

通用类型在运行时不存在。你将不得不创建相应的原始类型。 –

+2

另请参阅http://docs.oracle.com/javase/tutorial/java/generics/erasure.html –

回答

2

由于泛型是编译时检查,它们在运行时没有多大意义。在反射中,您可以使用非泛型类型。

MyClass<T> myClass = /* MyClass.class */.newInstance(); // gets a warning but works. 
+0

好吧,如果它是这样的,那么你只会做'MyClass myClass = new MyClass ();' – newacct

+0

I我假定'MyClass.class'在编译时是未知的,或者有理由使用反射 –