2011-10-01 44 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));