我有一个问题(简化):
public void method(List<List<?>> list){...}
调用时给了我一个编译错误:
method(new ArrayList<List<String>>()); // This line gives the error
在阅读了一个类似的线程之后,我明白如果我将方法签名重写为:
public void method(List<? extends List<?>> list){...}
现在,我的问题是,为什么下面的工作呢?
public <T> void method(List<List<T>> list){...}