gpt4 book ai didi

kotlin - Kotlin:HashMap中的通用数据类型?

转载 作者:行者123 更新时间:2023-12-02 13:17:36 30 4
gpt4 key购买 nike

我有一些对象<String, Object>的哈希图,有些像这样:

val mapA = HashMap<String, A>
val mapB = HashMap<String, B>
val mapC = HashMap<String, C>

我想创建一个函数,将任何哈希图打印出来。这就是我的意思:

fun printHashMap(hashMap: HashMap<String, (any type here, for example A, B or C)>){
// print each element of hashmap
}

到目前为止,我已经尝试过:

fun printHashMap(hashMap: HashMap<Any, Any>){
// print HashMap here
}

但这会抛出 Type mismatch<Any, Any><String, A>
在 Kotlin 这可能吗?

最佳答案

如果不需要特定的打印格式,则可以在不使用自己的函数的情况下打印hashMap:

val testMap = HashMap<String, Any>()
testMap["1"] = 1
testMap["2"] = "2"
print(testMap)

否则,您应该将方法的签名更改为
fun printHashMap(map: Map<String, *>)

在函数中最好使用Interface而不是具体的类。而不是任何,您需要使用星形投影。此处的安全方法是定义此类通用类型的投影,以使该通用类型的每个具体实例都将是该投影的子类型。

您可以阅读有关它的更多信息 herehere

关于kotlin - Kotlin:HashMap中的通用数据类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62228496/

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