次の方法がある場合:
public <U extends Number> void doSomething(List<U> l){
}
その後type erasure、コンパイラが原因でになりdoSomething(List<Number> l)ます。右?
この場合、これと一緒に次のことを宣言できないのはなぜですか。
public void doSomething(List<?> l){
}
この2番目の方法ではありませんtype erasedかdoSomething(List<Object> l)?これら2つのメソッドで同じ消去のコンパイラエラーが発生するのはなぜですか?