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