如何将Kotlin转换Array
为varargs Java String[]
?
val angularRoutings =
arrayOf<String>("/language", "/home")
// this doesn't work
web.ignoring().antMatchers(angularRoutings)
如何将Kotlin转换Array
为varargs Java String[]
?
val angularRoutings =
arrayOf<String>("/language", "/home")
// this doesn't work
web.ignoring().antMatchers(angularRoutings)
Answers:
您应该使用如下所示的散布运算符:*
散布运算符需要放在数组参数的前面:
antMatchers(*angularRoutings)
有关更多信息,请参见文档:
当我们调用
vararg
-function时,我们可以一个接一个地传递参数,例如asList(1, 2, 3)
,或者,如果我们已经有一个数组并将其内容传递给该函数,则可以使用spread运算符(使用前缀数组*
):
请注意,传播运算符仅为数组定义,不能直接在列表上使用。处理列表时,使用例如toTypedArray()
将其转换为数组:
*list.toTypedArray()
vararg
期望单个元素,这*array
是Kotlin所说的“为此目的将该数组作为单个元素进行处理”。在vararg
-function 内,该vararg
参数始终是一个数组。要将单个元素转换为数组,可以使用arrayOf(...)
,但在这种情况下不需要。
vararg
?