<T extends Number> void m1(List<T> list) {
list.add(list.get(0));
}
void m2(List<? extends Number> list) {
list.add(list.get(0));
}
我发现很难理解上述两种方法之间的区别。
第一种方法m1()
编译成功,但方法m2()
产生一个编译器错误:Java通配符捕获
The method
add(capture#1-of ? extends Number)
in the typeList<capture#1-of ? extends Number>
is not applicable for the arguments(capture#2-of ? extends Number)
类型擦除.... –