相关疑难解决方法(0)

62
推荐指数
2
解决办法
2万
查看次数

泛型和继承?

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>

java generics

3
推荐指数
1
解决办法
118
查看次数

标签 统计

generics ×2

java ×2

collections ×1

inheritance ×1