Ошибка происходит, когда я использую Android Studio «Введите параметр, связанный с C in» - PullRequest
0 голосов
/ 29 октября 2018

Ошибка параметра параметра Type для C во встроенном потоке Iterable.mapTo (назначение: C, преобразование: (T) -R): C не выполнено: выведенный тип ArrayList не является подтипом MutableCollection

Код

private fun asContributor(): Func1<DataSnapshot, FireContributor> {
return Func1 { dataSnapshot ->
    val contributor = dataSnapshot.getValue(FireContributor::class.java)
    contributor?.setId(dataSnapshot.key)
    Log.d(TAG, "Contributor:" + contributor?.name + ", " + contributor?.avatar)
    val keys = ArrayList<String>()
    if (dataSnapshot.child(FireContributor.ROLES_SECTION).hasChildren()) {
        val children = dataSnapshot.child(FireContributor.ROLES_SECTION).children
        children.mapTo(keys) { it.key }
    }
    contributor?.roleIds = keys
    contributor
}

изображение кода ошибки здесь

другое изображение здесь

1 Ответ

0 голосов
/ 29 октября 2018

Попробуйте создать изменяемый список:

val keys: MutableList<String> = ArrayList()

или

val keys = mutableListOf<String>()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...