考虑下面这个方法 doSomething(List<Object>)
,它接受 List<Object>
作为参数。
private void doSomething(List<Object> list) {
// do something
}
现在考虑下面的代码片段,它试图调用 doSomething()
,在其中我尝试将 List<String>
传递给 doSomething()
。List<Object> objectList;
List<String> stringList;
doSomething(stringList); // compilation error incompatible types
doSomething(objectList); // works fine
即使是以下代码,也会引发编译错误
objectList = stringList; // compilation error incompatible types
我的问题是为什么无法将 List<String>
传递给一个接受 List<Object>
的方法?
List<? extends Object>
应该允许它正常工作。 - AbstractChaosList#add(...)
即可。 - Marco13