Jak mogę zamienić mój Kotlin Array
na Java Varargs String[]
?
val angularRoutings =
arrayOf<String>("/language", "/home")
// this doesn't work
web.ignoring().antMatchers(angularRoutings)
Jak mogę zamienić mój Kotlin Array
na Java Varargs String[]
?
val angularRoutings =
arrayOf<String>("/language", "/home")
// this doesn't work
web.ignoring().antMatchers(angularRoutings)
Odpowiedzi:
Powinieneś użyć operatora spread, który wygląda następująco: *
Operator spreadu należy umieścić przed argumentem tablicowym:
antMatchers(*angularRoutings)
Więcej informacji można znaleźć w dokumentacji :
Kiedy wywołujemy
vararg
-funkcję, możemy przekazywać argumenty jeden po drugim, np.asList(1, 2, 3)
Lub, jeśli mamy już tablicę i chcemy przekazać jej zawartość do funkcji, używamy operatora spreadu (poprzedzamy tablicę*
):
Należy pamiętać, że operator spreadu jest zdefiniowany tylko dla tablic i nie można go używać bezpośrednio na liście. Kiedy mamy do czynienia z listą, użyjmy np. toTypedArray()
Aby przekształcić ją w tablicę:
*list.toTypedArray()
vararg
oczekuje pojedynczych elementów i *array
jest sposobem Kotlina na powiedzenie „traktuj tę tablicę jako indywidualne elementy do tego celu”. W ramach vararg
-funkcji vararg
parametr i tak będzie tablicą. Aby przekonwertować poszczególne elementy na tablicę, której możesz użyć arrayOf(...)
, ale nie potrzebujesz tego w tym przypadku.
vararg
?