Is there a simple way of converting a Java ArrayList to a Kotlin Array? The following code:

fun test(): Array<String> {
  val elems = ArrayList<String>()
  return elems.toArray()
}

gives the error:

main.kt:2:15: error: unresolved reference: ArrayList
  val elems = ArrayList<String>()
              ^

I'm parsing some JSON and don't know how many elements I'm going to end up with, but once I've read them I don't need to modify the data in any way so I thought I'd go with Kotlin arrays as the data type.

推荐答案

try 使用扩展功能toTypedArray,如:

fun test(): Array<String> {
    val elems = arrayListOf<String>()
    return elems.toTypedArray()
}

Kotlin相关问答推荐

UByte范围. Min_UTE.. UByte.MAX_UTE不符合预期

外键是主键的一部分,但不是索引的一部分.房间

在Kotlin 有更好的结合方式?

如何修改muableStateMapOf的值?

在Kotlin lambda的参数中如何指定函数类型?

如何在 Android Jetpack Compose 中的画布上绘制一侧加厚的描边?

如何使用 Either monad 并避免嵌套 flatMap

如何在 Kotlin 中使用具有继承的泛型

TestContainers PostgreSQLContainer 与 Kotlin 单元测试:Not enough information to infer type variable SELF

如何在 Android 的 Fragment 中使用 setUserVisibleHint

@InlineOnly 注释是什么意思?

如何使用 gradle 脚本 Kotlin 构建文件构建可运行的 ShadowJar?

DatabaseManager_Impl 不是抽象的,不会覆盖 RoomDatabase 中的抽象方法 clearAllTables()

如何处理 Kotlin 中的异常?

无法为 retrofit2.Call 调用无参数构造函数

Kotlin suspend fun

Kotlin 接口属性:只需要公共 getter 而没有公共 setter

java.lang.NoClassDefFoundError:解析失败:Lkotlin/time/MonoClock

Kotlin反射不可用

如何在 Fragment 中使用 Anko DSL?