2011-06-12 46 views
1

可能重複:
How to determine the class of a generic type?獲取類的通用類型的Java中

我有一個方法,如:

public <T> List<T> bar() { 
    return new Baz<T.class>().toList(); 
} 

T.class創建一個編譯器錯誤。有沒有辦法在Java中做到這一點,或者是因爲類型擦除而不可能?

+0

你可以做到這一點就好了:'return new Baz ().toList()'。在這種情況下,不需要該方法確切知道'T'在運行時的確切類型。 – ColinD 2011-06-12 22:24:07

回答

0

類型擦除可以防止它。你可以做的最好的是:

public <T> List<T> bar(Class<T> clazz) { 
    // do something useful with the Class object 
} 
0

根據我有限的知識,這是由於類型擦除可撤銷。但是,一些很好的解決方法是given in this thread

但是,我會看到非解決方法。