我有一个如下所示的类定义:
public class Test {
static <T> List<Class<T>> filter(List<Class<T>> input) {
// code here
}
public static void main(String[] args) {
List<Class<? extends Throwable>> list =
new ArrayList<Class<? extends Throwable>>();
filter(list);
}
}
filter
方法调用会出现以下编译错误:The method filter(List<Class<T>>) in the type Test is not applicable for the
arguments (List<Class<? extends Throwable>>)
我不明白为什么<T>
不能绑定到<? extends Throwable>
。有没有泛型专家可以帮助我?
List<Class<T>>
来保存结果,但我无法添加条目,因为Class<? extends T>
无法转换为Class<T>
。至少这一点对我来说是有意义的。我也将方法更改为返回List<Class<? extends T>>
,并且它可以编译。虽然很奇怪,但它确实有效。 - Adam Crume