gpt4 book ai didi

java - 通配符 java 扩展

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

考虑以下代码:

List<? extends Integer> lst= new ArraList<Integer>();
lst.add(5);//Compile error
lst.get(5);//OK

在第二个字符串中,我们遇到编译错误,因为我们必须保证 List<? extends Integer> 的所有潜在子类型中都有方法 add(int)编译器知道它的 null只是,第三个字符串返回未知类型,编译器将其转换为对象,不是吗?

最佳答案

PECS. Producer extends, Consumer super.

List<? super Integer> lst= new ArrayList<Integer>();
lst.add(5);// No Compile error

列表现在是一个消费者,你将对象放入其中......

还有这个

lst.get(5);

是一个不同的蛋糕...您提供您想要获取的整数索引...(更不用说Sotirios提到的:返回类型将是Object 在这种情况下。此外,在这个角色中,列表是一个提供者...)

关于java - 通配符 java 扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18990134/

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