Java ArrayList в Kotlin Array
Есть ли простой способ преобразования Java ArrayList в массив Kotlin? Следующий код:
fun test(): Array<String> {
val elems = ArrayList<String>()
return elems.toArray()
}
дает ошибку:
main.kt:2:15: error: unresolved reference: ArrayList
val elems = ArrayList<String>()
^
Я разбираю JSON и не знаю, сколько элементов у меня получится, но как только я прочитал их, мне не нужно каким-либо образом модифицировать данные, поэтому я подумал, d перейдите с массивами Kotlin в качестве типа данных.
Ответы
Ответ 1
Зачем использовать массив? Kotlin Arrays изменяются так же, как Java-массивы. Вы должны использовать Kotlin List, который, в отличие от MutableList, является неизменным.
Что касается того, почему код не компилируется: toArray возвращает Object [], если вы хотите использовать String [] из списка, вам нужно использовать версию toArray, которая принимает Array в качестве аргумента.
Ответ 2
Попробуйте использовать функцию расширения toTypedArray
, например:
fun test(): Array<String> {
val elems = arrayListOf<String>()
return elems.toTypedArray()
}
Ответ 3
вы можете использовать список kotlin, это легко использовать, почему преобразование java-массива в kotlin-массив обе изменяемы.
попробуйте это....
fun learnlist(){
var stringList= listOf<String>("a","b","c","d")
for (st in stringList)
print(st)
var intlist= listOf<Int>(1,2,3,4,5)
for(i in intlist)
print(i)
}