我有一个带有vararg参数的函数。该vararg参数需要作为列表传递给另一个函数。

如何将vararg参数转换为列表? listOf()给我一个错误。

fun insertMissingEntities(vararg entities: Entity) {
  val list = listOf(entities)
  passMissingEntities(list) // Type mismatch.
                            // Required: List<Entity>
                            // Found: List<Array<out Entity>>
}

最佳答案

您可以使用扩展功能.asList(),该功能不会添加任何复制操作(与使用spread运算符的listOf不同)。

fun insertMissingEntities(vararg entities: Entity) {
  passMissingEntities(entities.asList())
}

08-28 02:51