将Kotlin Array转换为Java varargs

rob*_*011 93 java interop kotlin kotlin-interop

如何将我的Kotlin转换Array为varargs Java String[]

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

// this doesn't work        
web.ignoring().antMatchers(angularRoutings)
Run Code Online (Sandbox Code Playgroud)

如何将ArrayList传递给varargs方法参数?

s1m*_*nw1 184

您应该使用" spread operator ",它看起来像这样:*
spread运算符需要以数组参数为前缀:

antMatchers(*angularRoutings)
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅文档:

当我们调用vararg-function时,我们可以逐个传递参数,例如asList(1, 2, 3),或者,如果我们已经有一个数组并且想要将其内容传递给函数,我们使用spread运算符(数组的前缀*):

  • 请注意,这会带来非常高的性能损失。https://sites.google.com/a/athaydes.com/renato-athaydes/posts/kotlinshiddencosts-benchmarks检查Varargs,或https://medium.com/@BladeCoder/exploring-kotlins-hidden-costs-part- 2-324a4a50b70#da53 (3认同)
  • 有没有办法避免使用扩展运算符并将一些数组或列表传递给接受“vararg”的方法? (2认同)