gpt4 book ai didi

Java泛型边界

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

我有以下代码:

public <T extends SomeObject> long doSomething(T someObject){
List<? extends SomeObject> l = new LinkedList<>();
l.add(someObject);
}

这会导致编译错误 - 告诉我没有找到合适的方法:add(T),这是为什么?

如果 l 接受扩展 SomeObject 的东西,它不应该接受 someObject 因为它绑定(bind)到扩展 SomeObject

最佳答案

List<? extends SomeObject> l

你这是什么意思?当然会产生错误。

以这个例子为例:SomeObjectFruit ,你有 2 个派生类 AppleOrange

您的 list 将包含什么? Apple s 或 Orange秒?编译器无法分辨。所以它会产生错误。

如果你替换List<? extends SomeObject> lList<SomeObject> l .那么这将起作用,因为 AppleOrange都是Fruit .

关于Java泛型边界,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11600401/

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