从MutableList <Int>初始化Array <Int>

时间:2019-10-09 08:06:35

标签: android kotlin realm

我有以下代码:

val realm = Realm.getDefaultInstance()
val items = realm.where(ItemRealm::class.java).equalTo("Id", id).findAll()
val ids = arrayOf<Int>(locations.map { it.locationId!! })
return realm.where(LocationRealm::class.java).`in`("id", ids).findAll()

收到以下错误:

  

类型推断失败。预期的类型不匹配:必填Int,找到的列表

我知道这是因为Array构造函数上的第一个参数是Size,但是我不知道如何初始化该数组。我需要它,因为Realm.where.in需要Array<Int>才能工作。

还有其他方法(更快)而不是初始化以下方法?

val locations = realm.where(ItemStockLocationsRealm::class.java).equalTo("stockId", id).findAll()
val ids = arrayOf(locations.size) {0}
for (i in locations.indices) { ids[i] = locations[i]?.locationId!! }

1 个答案:

答案 0 :(得分:4)

val ids : Array<Int> = locations.map { it.locationId!! }.toTypedArray()