List Kotlin将列表转换为vararg
我有List Kotlin将列表转换为vararg,list,kotlin,variadic-functions,List,Kotlin,Variadic Functions,我有列表类型的输入数据 class UnitWithComponents{ 变量单位:单位?=null 变量组件:List=ArrayList() } 我想将数据转换为单元的vararg 目前我正在做*data.map{it.unit!!}.toTypedArray()。有更好的方法吗?没有,这是正确的方法(假设您想在它时引发异常。对于列表中的某些元素,单位为null) 使用 foo(strings=arrayOf(“a”、“b”、“c”)) val列表:可变列表=可变列表的列表(“a”、“b
列表类型的输入数据
class UnitWithComponents{
变量单位:单位?=null
变量组件:List=ArrayList()
}
我想将数据转换为单元的vararg
目前我正在做*data.map{it.unit!!}.toTypedArray()
。有更好的方法吗?没有,这是正确的方法(假设您想在它时引发异常。对于列表中的某些元素,单位为null
)
使用
foo(strings=arrayOf(“a”、“b”、“c”))
val列表:可变列表=可变列表的列表(“a”、“b”、“c”)
foo(strings=list.map{it}.toTypedArray())
非Kotlin函数(*.java)不允许使用命名参数
因此,在这种情况下,您应该替换:
From:strings=list.map{it}.toTypedArray()
收件人:*list.map{it}.toTypedArray()
德国劳埃德船级社
使用mapNotNull{}
将更容易避免一些意外或异常
class UnitWithComponents {
var unit: Unit? = null
var components: List<Component> = ArrayList()
}
fun foo(vararg strings: String) { /*...*/ }
foo(strings = arrayOf("a", "b", "c"))
val list: MutableList<String> = listOf("a", "b", "c") as MutableList<String>
foo(strings = list.map { it }.toTypedArray())