由于 `HashMap.getOrDefault()` 函数中的接收器类型不匹配,以下候选均不适用
Posted
技术标签:
【中文标题】由于 `HashMap.getOrDefault()` 函数中的接收器类型不匹配,以下候选均不适用【英文标题】:None of the following candidate is applicable because of receiver type mismatch in `HashMap.getOrDefault()` function 【发布时间】:2020-10-18 15:35:07 【问题描述】:根据Oracle官方文档,HashMap.getOrDefault(Object Key, V defaultValue)
函数可以带两个参数,但是当我运行以下程序时编译器报错。
fun main(args: Array<String>)
val numbersMap = mapOf(
"one" to 1,
"two" to 2,
"three" to 3,
"four" to 4,
"five" to 5
)
println(numbersMap.get("one"))
println(numbersMap["one"])
println(numbersMap.getOrDefault("four", 10))
println(numbersMap["five"])
C:\Users\forestfh\Documents\KotlinProjects>kotlinc GetOrDefault.kt
GetOrDefault.kt:11:24: error: unresolved reference. None of the following candid
ates is applicable because of receiver type mismatch:
public inline fun <R, T : String> Result<String>.getOrDefault(defaultValue: Stri
ng): String defined in kotlin
println(numbersMap.getOrDefault("four", 10))
【问题讨论】:
【参考方案1】:您可以使用getOrElse()
扩展函数来检索存储值或默认值:
println(numbersMap.getOrElse("four") 10 )
【讨论】:
以上是关于由于 `HashMap.getOrDefault()` 函数中的接收器类型不匹配,以下候选均不适用的主要内容,如果未能解决你的问题,请参考以下文章
Collect failed in ... s 由于 Stage 由于 SparkContext 已关闭而取消