Existe-t-il un moyen simple de convertir un tableau Java ArrayList en un tableau Kotlin? Le code suivant:
fun test(): Array<String> {
val elems = ArrayList<String>()
return elems.toArray()
}
donne l'erreur:
main.kt:2:15: error: unresolved reference: ArrayList
val elems = ArrayList<String>()
^
J'analyse certains JSON et je ne sais pas combien d'éléments je vais finir, mais une fois que je les ai lus, je n'ai plus besoin de modifier les données. J'ai donc pensé y aller. Tableaux Kotlin en tant que type de données.
Essayez d'utiliser la fonction d'extension toTypedArray
, comme:
fun test(): Array<String> {
val elems = arrayListOf<String>()
return elems.toTypedArray()
}
Pourquoi utiliser un tableau? Les tableaux Kotlin peuvent être modifiés, tout comme les tableaux Java. Vous devriez utiliser une liste de Kotlin qui, contrairement à MutableList, est immuable. Pour expliquer pourquoi le code ne se compile pas: toArray renvoie un objet []. Si vous voulez un String [] dans une liste, vous devez utiliser la version toArray qui prend un tableau comme argument.
Convertir ArrayList en Array dans Kotlin
import Java.util.*
fun main(args: Array<String>) {
val list = ArrayList<String>()
list.add("a")
list.add("b")
val array = arrayOfNulls<String>(list.size)
list.toArray(array)
println(Arrays.toString(array))
}
Sortie : [a, b]
Convertir un tableau en liste dans Kotlin
import Java.util.*
fun main(args: Array<String>) {
val array = arrayOf("a", "b")
val list = Arrays.asList(*array)
println(list)
}
Sortie: [a, b]