Ter*_*rry 9 generics variadic-functions kotlin
我有一个带有可变参数的函数。这个 vararg 参数需要作为列表传递给另一个函数。
如何将 vararg 参数转换为列表?listOf()给了我一个错误。
fun insertMissingEntities(vararg entities: Entity) {
val list = listOf(entities)
passMissingEntities(list) // Type mismatch.
// Required: List<Entity>
// Found: List<Array<out Entity>>
}
Run Code Online (Sandbox Code Playgroud)
Lou*_*man 11
您可以使用扩展函数.asList(),它不会添加复制(与listOf扩展运算符不同)。
fun insertMissingEntities(vararg entities: Entity) {
passMissingEntities(entities.asList())
}
Run Code Online (Sandbox Code Playgroud)
可变参数参数需要使用扩展运算符进行扩展*。
fun insertMissingEntities(vararg entities: Entity) {
val list = listOf(*entities)
passMissingEntities(list)
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3054 次 |
| 最近记录: |