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中做到這一點,或者是因爲類型擦除而不可能?
可能重複:
How to determine the class of a generic type?獲取類的通用類型的Java中
我有一個方法,如:
public <T> List<T> bar() {
return new Baz<T.class>().toList();
}
T.class
創建一個編譯器錯誤。有沒有辦法在Java中做到這一點,或者是因爲類型擦除而不可能?
類型擦除可以防止它。你可以做的最好的是:
public <T> List<T> bar(Class<T> clazz) {
// do something useful with the Class object
}
根據我有限的知識,這是由於類型擦除可撤銷。但是,一些很好的解決方法是given in this thread。
但是,我會看到非解決方法。
你可以做到這一點就好了:'return new Baz().toList()'。在這種情況下,不需要該方法確切知道'T'在運行時的確切類型。 –
ColinD
2011-06-12 22:24:07