Jak mogę zamienić mój Kotlin Arrayna Java Varargs String[]?
val angularRoutings =
arrayOf<String>("/language", "/home")
// this doesn't work
web.ignoring().antMatchers(angularRoutings)
Jak mogę zamienić mój Kotlin Arrayna 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()
varargoczekuje pojedynczych elementów i *arrayjest sposobem Kotlina na powiedzenie „traktuj tę tablicę jako indywidualne elementy do tego celu”. W ramach vararg-funkcji varargparametr 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?