Kotlin Array
を可変引数Java に変換するにはどうすればよいString[]
ですか?
val angularRoutings =
arrayOf<String>("/language", "/home")
// this doesn't work
web.ignoring().antMatchers(angularRoutings)
Kotlin Array
を可変引数Java に変換するにはどうすればよいString[]
ですか?
val angularRoutings =
arrayOf<String>("/language", "/home")
// this doesn't work
web.ignoring().antMatchers(angularRoutings)
回答:
次のようなスプレッド演算子を使用する必要があります。スプレッド演算子*
は配列引数の前に配置する必要があります。
antMatchers(*angularRoutings)
詳細については、ドキュメントを参照してください。
-
vararg
関数を呼び出すときは、引数を1つずつ渡すことができます。たとえばasList(1, 2, 3)
、すでに配列があり、その内容を関数に渡したい場合は、スプレッド演算子を使用します(配列の前にを付けます*
)。
スプレッド演算子は配列に対してのみ定義されており、リストで直接使用できないことに注意してください。リストを扱うときは、たとえばtoTypedArray()
配列を配列に変換するために使用します。
*list.toTypedArray()
vararg
は個々の要素を期待し、*array
「この目的のためにこの配列を個々の要素として扱う」と言うKotlinの方法です。vararg
-function 内では、vararg
パラメーターはとにかく配列になります。個々の要素を配列に変換するにはを使用できますarrayOf(...)
が、この場合は必要ありません。
vararg
か?