Как я могу преобразовать свой 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?