2011-10-01 64 views
-1

怎样才能做这样的事情:是否可以从泛型类中获取.class?

Schema<ArrayList<UnitInstanceData>> scheme = 
     RuntimeSchema.getSchema(ArrayList<UnitInstanceData>.class)); 
+1

我们能否获得更多信息?什么是更大的目的? – Coffee

+0

没有足够的建设性来回答。我想你应该阅读常见问题的stackoverflow,并看看如何以最好的方式写问题::) – doNotCheckMyBlog

+0

我问一个语法/功能问题。我不认为这是可能的。相关部分是ArrayList .class,它是一个编译错误。 – MetaChrome

回答

3

.class运行访问类对象。在运行时,泛型消失了,被“类型擦除”消除了。在你的例子中,你可以得到的是ArrayList.class。如果您需要在运行时知道通用类的类型,则必须传递第二个参数,如

RuntimeSchema.getSchema(ArrayList.class, UnitInstanceData.class));