gpt4 book ai didi

java - 使用泛型的 HashMap

转载 作者:行者123 更新时间:2023-12-01 13:14:56 29 4
gpt4 key购买 nike

我有:

protected Map<String, ? extends Transaction> transactions = new HashMap<String, ?>();

但是,我收到编译错误:

Type mismatch: cannot convert from HashMap<String,?> to Map<String,? extends Transaction>

我尝试了一些变体,包括:

protected Map<String, ? extends Transaction> transactions = new HashMap<String, ? extends Transaction>();

都会产生相同的编译错误。

我的目标是拥有 Report 的实例abstract class (由许多不同类型的报告扩展),接受 abstract class 的多个子类Transaction

进入扩展 Report 的单个实例的类型都将是相同的类型,例如 TRRReport extends Report需要接受TRRTransaction extends Transaction进入它的HashMap ,但是TDDReport extends Report需要接受TDDTransaction extends Transaction进入它的HashMap .

我如何使用HashMapGenerics在这种情况下?

最佳答案

泛型参数中 ? 的要点是当您想要在变量中存储未知类型的集合时。这称为协方差。

您想要一个常规的通用交易集合:

protected Map<String, Transaction> transactions = new HashMap<String, Transaction>();

关于java - 使用泛型的 HashMap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22542487/

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