public static void main(String... args) {
List<Child> list1 = new ArrayList<Child>();
method2(list1);
}
public static void method2(List<Parent> list1) {
}
Run Code Online (Sandbox Code Playgroud)
我得到以下编译错误
方法method2(List)未定义...
上面的问题可以通过修改List<Parent> list1来解决List<? extends Parent> list1.
但是如果我尝试添加下面的子对象
public static void method2(List<? extends Parent> list1) {
Child child1 = new Child();
list1.add(child1);
}
Run Code Online (Sandbox Code Playgroud)
它再次出现编译错误
类型List中的方法add(capture#1-of?extends Parent)不适用于参数(Child)
所以我的问题是,如果List<Child>可以作为参数传递给List<? extends Parent> list1我们为什么不能添加子对象List<? extends Parent>?