Как я могу преобразовать свой 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)
Ответы:
Вы должны использовать оператор распространения, который выглядит следующим образом: *
Оператор распространения необходимо поместить перед аргументом массива:
antMatchers(*angularRoutings)
Для получения дополнительной информации см. Документацию :
Когда мы вызываем
vararg
-функцию, мы можем передавать аргументы один за другим, напримерasList(1, 2, 3)
, или, если у нас уже есть массив и мы хотим передать его содержимое функции, мы используем оператор распространения (префикс массива*
):
Обратите внимание, что оператор распространения определен только для массивов и не может использоваться напрямую в списке. При работе со списком используйте, например, toTypedArray()
для преобразования его в массив:
*list.toTypedArray()
vararg
ожидает отдельные элементы, и *array
это способ Kotlin сказать «обрабатывать этот массив как отдельные элементы для этой цели». Внутри vararg
-функции vararg
параметр в любом случае будет массивом. Для преобразования отдельных элементов в массив вы можете использовать arrayOf(...)
, но в этом случае вам это не нужно.
vararg
?