2011-06-12 64 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

但是,我会看到非解决方法。