我有一个类如何在Java中运行时生成泛型类?
myClass<T>
我也有一个类型,完全无关的类。
如何生成一个myClass,其中泛型参数T是我在java中反射的类型?
我试图
myClass.class.getConstructor()
但我不能得到任何进一步的比。我在哪里可以具体给出构造函数的通用参数?
我有一个类如何在Java中运行时生成泛型类?
myClass<T>
我也有一个类型,完全无关的类。
如何生成一个myClass,其中泛型参数T是我在java中反射的类型?
我试图
myClass.class.getConstructor()
但我不能得到任何进一步的比。我在哪里可以具体给出构造函数的通用参数?
由于泛型是编译时检查,它们在运行时没有多大意义。在反射中,您可以使用非泛型类型。
MyClass<T> myClass = /* MyClass.class */.newInstance(); // gets a warning but works.
好吧,如果它是这样的,那么你只会做'MyClass
I我假定'MyClass.class'在编译时是未知的,或者有理由使用反射 –
你的问题没有意义。泛型不传递给构造函数,例如:'List list = new ArrayList ();'。这是一个编译时检查。 –
m0skit0
通用类型在运行时不存在。你将不得不创建相应的原始类型。 –
另请参阅http://docs.oracle.com/javase/tutorial/java/generics/erasure.html –