gpt4 book ai didi

Java:将实现的列表的映射分配给泛型类型的列表的映射时出现编译错误

转载 作者:行者123 更新时间:2023-12-02 04:59:58 26 4
gpt4 key购买 nike

下面的代码已被简化以显示我的问题:

我有一个界面:

public interface Cell {
public String getDescription();
}

我有一个具体的类(class):

public class ConcreteCell implements Cell {
public String getDescription() {
return "concrete";
}
}

现在我有一个将字符串映射到单元格列表的数据结构:

Map<String, List<Cell>> map;

此代码无法编译:

map = new HashMap<String, List<ConcreteCell>>();

这是为什么呢?

最佳答案

如果您使用Map<String, ? extends List<? extends Cell>>,这将正常工作。原因是List<ConcreteCell>不是 List<Cell> 的子类型,然后 Map<String, List<ConcreteCell>>仍然不是 Map<String, List<? extends Cell>> 的子类型.

SO 上的许多问题都讨论了这种情况的原因,包括 Java: Casting from List<B> to List<A> when B implements A? .

关于Java:将实现的列表的映射分配给泛型类型的列表的映射时出现编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28373754/

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