在Kotlin,我宣布了一个List<String>
:
private val items = listOf<String> {
"String1",
"String2",
"String3"
}
编译器给我这个错误:
输入不匹配。
必需:字符串
找到:() - &gt;串
这是什么意思?我该如何解决?
P.S。对Kotlin来说很陌生,所以请耐心等待一些明显的问题。
答案 0 :(得分:7)
您传递了{}
中包含的参数,该参数引入了函数文字(lambda),这就是编译器找到函数类型的原因
找到:() - &gt;串
相反,只需使用这样的括号:
listOf("String1", "String2")
一些信息:
Kotlin允许您在()
作为最后一个参数传递后传递函数。如果函数是唯一的参数,则可以将括号保留在示例中。因此代码有效但只是与函数参数类型不匹配。
答案 1 :(得分:1)
试试这个:
private val items = listOf("String1", "String2", "String3")
答案 2 :(得分:0)
我在尝试添加标头以在Kotlin中进行改装时遇到了这个问题。
Java代码为:
@Headers({"Accept: application/json",
"userName: blah@test.com"
})
事实证明,解决方案不是listOf或arrayOf,而是仅删除{}
科林解决方案:
@Headers("Accept: application/json",
"userName: blah@test.com"
)