Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将Kotlin数组转换为Java varargs_Java_Kotlin_Interop_Kotlin Interop - Fatal编程技术网

将Kotlin数组转换为Java varargs

将Kotlin数组转换为Java varargs,java,kotlin,interop,kotlin-interop,Java,Kotlin,Interop,Kotlin Interop,如何将Kotlin数组转换为varargs Java字符串[] val angularRoutings = arrayOf<String>("/language", "/home") // this doesn't work web.ignoring().antMatchers(angularRoutings) val角度路由= 数组(“/language”和“/home”) //这不管用 忽略().antMatchers(角度路由) 有一个扩展运算符

如何将Kotlin
数组
转换为varargs Java
字符串[]

val angularRoutings = 
    arrayOf<String>("/language", "/home")

// this doesn't work        
web.ignoring().antMatchers(angularRoutings)
val角度路由=
数组(“/language”和“/home”)
//这不管用
忽略().antMatchers(角度路由)

有一个扩展运算符,由
*
表示。
扩展运算符放在数组参数前面:

antMatchers(*angularRoutings)
有关更多信息,请参阅:

调用
vararg
-函数时,我们可以逐个传递参数,例如
asList(1,2,3)
,或者,如果我们已经有一个数组并希望将其内容传递给函数,我们可以使用扩展运算符(在数组前面加
*
):

请注意,spread运算符仅为数组定义,不能直接用于列表。处理列表时,使用例如
toTypedArray()
将其转换为数组:

 *list.toTypedArray()

如何转换回?@Iacas“转换回”是什么意思?
vararg
需要单独的元素,而
*array
是Kotlin表示“将此数组视为用于该目的的单独元素”的方式。在
vararg
-函数中,
vararg
参数无论如何都将是一个数组。要将单个元素转换为数组,可以使用(…)数组,但在这种情况下不需要。请注意,这会对性能造成非常高的影响。检查Varargs,或者有没有办法避免使用spread运算符并将一些数组或列表传递给接受
vararg
的方法?@DarioSeidl他的意思是:如果我们有字符串的Varargs,并且希望传递给需要字符串数组的函数,该怎么办?