如果我有以下方法:
public <U extends Number> void doSomething(List<U> l){
}
然后由于type erasure
编译器将使其变为doSomething(List<Number> l)
. 对?
如果是这种情况,那么为什么不能同时声明以下内容:
public void doSomething(List<?> l){
}
这不是第二种方法type erased
吗doSomething(List<Object> l)
?为什么这两种方法会出现相同擦除的编译器错误?