gpt4 book ai didi

java - 通用论证方法 ?极好的

转载 作者:行者123 更新时间:2023-12-01 05:04:12 25 4
gpt4 key购买 nike

如果这种类型应该能够添加 Apple 的任何父类(super class)型,为什么不能不能将新对象添加到列表中?

import java.util.List;
import java.util.ArrayList;
class Apple{}
public class Macintosh extends Apple {
public static void main(String[] munch){
List<Apple> a = new ArrayList<Apple>();
basket(a);
}
static void basket(List<? super Apple> list){ list.add(new Object());}
}

如果我们将参数更改为 List 列表,当然它可以工作:s

<小时/>
class Animal{}
class Dog extends Animal{}
class Cat extends Animal{}
public class Mixer<A extends Animal>{
public <C extends Cat> Mixer<? super Dog> useMe(A a, C c){
return new Mixer<Animal>();
}
}

为什么我们可以在返回时使用 Mixer,如果之前的情况下编译器不知道对象的 Class,现在是因为是一个类???

最佳答案

您正在尝试向 Apple 列表中添加非 Apple 的内容(对象不是 Apple 的子类)。因此,编译错误。

关于java - 通用论证方法 ?极好的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12954326/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com