Инициализировать массив <Int>из MutableList <Int> - PullRequest
3 голосов
/ 09 октября 2019

У меня следующий код:

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 Ответ

4 голосов
/ 09 октября 2019
val ids : Array<Int> = locations.map { it.locationId!! }.toTypedArray()
...