gpt4 book ai didi

java - 有界泛型方法未编译 - 为什么?

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:01:19 24 4
gpt4 key购买 nike

下面的代码对我来说完全有意义 - 它是关于添加某种类型的元素,该元素是类型 T 的父类(super class)型,而类型 S 绝对是这样的父类(super class)型,那么为什么编译器拒绝将“元素”添加到集合中?

class GenericType<S,T extends S>{
void add1(Collection<? super T> col ,S element ){
col.add(element); // error
// The method add(capture#9-of ? super T) in the type
// Collection<capture#9-of ? super T> is not applicable for the arguments (S)
}
}

最佳答案

举个例子,如果A <- B <- C其中 <-意味着那是父类(super class)型,那么如果 S = BT = C您不能添加 S 的实例到 T 的集合.

T 的父类(super class)型可能是 T 的另一个父类(super class)型的父类(super class)型或子类型(在本例中为 S)。

关于java - 有界泛型方法未编译 - 为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6264789/

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