Перетворити масив Kotlin у вараги Java


Відповіді:


232

Ви повинні використовувати оператор спред, який виглядає приблизно так: *
Оператора розширення потрібно розмістити перед аргументом масиву:

antMatchers(*angularRoutings)

Для отримання додаткової інформації дивіться документацію :

Коли ми викликаємо vararg-функцію, ми можемо передавати аргументи один за одним, наприклад asList(1, 2, 3), або, якщо у нас вже є масив і хочемо передати його вміст функції, ми використовуємо оператор розповсюдження (префікс масиву з *):

Зауважте, що оператор розповсюдження визначений лише для масивів і не може бути використаний у списку безпосередньо. При роботі зі списком використовуйте, наприклад, toTypedArray()для перетворення його в масив:

 *list.toTypedArray()

А як конвертувати назад?
лакас

@Iacas Що ви маєте на увазі під "конвертувати назад"? varargЧекає окремих елементів, і *arrayце шлях Котлин сказати «розглядати цей масив як окремі елементи для цієї мети». У межах vararg-function varargпараметр все одно буде масивом. Для перетворення окремих елементів у масив ви можете використовувати arrayOf(...), але це вам не потрібно в цьому випадку.
Даріо Сейдл

3
Зауважте, що за це дуже штрафний показник. sites.google.com/a/athaydes.com/renato-athaydes/posts/… перевірити Varargs, або medium.com/@BladeCoder/…
svkaka

Чи є якийсь спосіб уникнути використання оператора розповсюдження та передати якийсь масив чи список методу, який приймає vararg?
Wackaloon

@DarioSeidl Він означає: Що робити, якщо у нас є вараги рядків, і ми хочемо перейти до функції, яка очікує масив рядків?
андроїд розробник
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.