gpt4 book ai didi

java - 为什么在集合中添加类型的子类 a 是非法的?

转载 作者:搜寻专家 更新时间:2023-10-31 19:48:05 25 4
gpt4 key购买 nike

给定这段代码

    //Creates a list of List numbers
List<List<Number>> num = new ArrayList<List<Number>>();
//Creates a list of List doubles
List<List<Double>> doub = new ArrayList<List<Double>>();
//List of doubles
List<Double> d = new ArrayList<Double>();
d.add(2.5);
d.add(2.6);
doub.add(d);

num.add(d);//This code will not compile

为什么 num.add(doub) 不被允许?不是 List<List<Number>> super 类型的 List<List<Double>>

最佳答案

Generics inheritance与我们对继承的理解没有什么不同。如果您想使用子类类型,您需要在泛型中使用 extends(或)super 来定义边界(wildcards)。

enter image description here

关于java - 为什么在集合中添加类型的子类 a 是非法的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12199629/

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