java - 如何转换 hashmap.values().toArray() ,其中这些 value() 也是 HashMap ?

标签 java casting hashmap

我希望主题清晰,欢迎提出建议。

我有一个hhm=new HashMap<String,HashMap<String,Test>>() .

我有一个function(HashMap<String,Test>... array) .

我需要调用function(hhm.values().toArray(new HashMap<String,Test>[0]))但我找不到办法做到这一点,这段代码无法编译。

转换会导致运行时异常:function((HashMap<String,Test>[])hhm.values().toArray())

现在怎么办?

最佳答案

黑客解决方案,以防您无法更改 function另外推荐:

function(hhm.values().toArray((HashMap<String,Test>[]) new HashMap<?,?>[0]))

因为创建 HashMap<?,?>[] 是合法的。 ,然后您可以转换它,因为 HashMap<Whatever, Whatever>[]真的只是HashMap[]在运行时(如果不是,那么 new HashMap<String,Test>[0] 首先就不会有问题)。

关于java - 如何转换 hashmap.values().toArray() ,其中这些 value() 也是 HashMap ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44320292/

相关文章:

swift - 在 Swift 中,冒号后面有类型声明有什么作用?

regex - 在 Rust 中将正则表达式捕获转换为 HashMap?

java - HashMap 覆盖值

java - 什么是NullPointerException,我该如何解决?

java - 为什么 Collections.unmodifiableMap 不检查传递的 map 是否已经是 UnmodifiableMap?

Java 十六进制、字符、数字之间的转换

java - 如何将两个 JsonNode 与 Jackson 进行比较?

time - 将 <integer> 秒添加到 PostgreSQL 中的 <timestamp>

objective-c - 如何在 ARC 下将 objective c 对象的地址获取到 void * volatile * 中?

Android - 如何在 Activity 之间传递 HashMap<String,String>?