gpt4 book ai didi

Java 嵌套 Map 声明 - 什么是内部 Map 具体类型

转载 作者:行者123 更新时间:2023-12-01 09:56:47 25 4
gpt4 key购买 nike

我有一个 map foo 声明如下。

private final Map<String, Map<String, Bar>> foo = new ConcurrentSkipListMap<String, Map<String, Bar>>();

由于我不希望数据类型看起来暴露具体数据类型,所以我没有将其声明为:

private final Map<String, ConcurrentSkipListMap<String, Bar>> foo = new ConcurrentSkipListMap<String, ConcurrentSkipListMap<String, Bar>>();

我的问题是内部 map 的实际类型是什么?如果我想要内部映射与外部映射相同的类型(ConcurrentSkipListMap)。我应该如何在不暴露具体数据类型的情况下做到这一点?

最佳答案

您已将外部 map 声明为 MapConcurrentSkipListMap 相反隐藏它的实现 - 您可以对内部映射执行相同的操作。

您创建的(外部) map 是空的 - 唯一已知的是它映射 StringMap (任何实现 Map 的类),因此你的问题是错误的 - 没有实际的内部映射(无论如何,还没有),并且你在没有任何检查的情况下唯一知道它是它是 Map<String, Bar>

值得注意的是,除非您有非常具体的要求,要求使用特定的实现,否则您应该使用接口(interface)来声明变量。

关于Java 嵌套 Map 声明 - 什么是内部 Map 具体类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37159575/

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