如何将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?