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

标签 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()

得到以下错误:

Type inference failed. Expected type mismatch: Required Int, Found List



我知道这是因为 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!! }

最佳答案

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

关于android - 从 MutableList<Int> 初始化 Array<Int>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58299653/

相关文章:

asynchronous - 如何使用协程传递结果?

android - 在创建 Realm 配置之前, Realm 数据库/应用程序在启动/调用 realm.init(context) 时崩溃

ios - 列表中成员资格的 Realm 谓词

java - 如何检测用户何时完成向 RecyclerView 中的 EditText 输入值?

android - 在 Kotlin 中可序列化

android - 由于正在进行 gradle 项目同步,无法构建项目

java - 如何匹配 java/kotlin 中的所有相似符号(e、ę 或 é)

ios - 返回 Result<Object> 时,Realmswift 通用函数调用崩溃

android - 使用 ViewModel 构造函数而不是 ViewModelProvider 能够根据参数从 Room 数据库中获取数据

java - 创建 Android 项目后 Eclipse Juno 崩溃