Kotlin - Несоответствие типов необходимая коллекция найдена список - PullRequest
0 голосов
/ 07 апреля 2020

Мне нужно добавить два list, но оно говорит мне:

type mismatch required collection found list

Это как ниже:

val list: List<Cohort> = ArrayList()
private fun fillFromDao() {
    val notesObserver: Observer<ArrayList<Cohort?>?>? =
        Observer { cohort: ArrayList<Cohort?>? ->
                list.toMutableList().addAll(cohort)
        }
    if (notesObserver != null) {
        otherDialogFragmentViewModel.fetchIsFree()?.observe(this, notesObserver)
        otherDialogFragmentViewModel.fetchHasCertificate()?.observe(this, notesObserver)
    }
}

Ответы [ 2 ]

0 голосов
/ 07 апреля 2020

Два изменения:

val list: List<Cohort?> = ArrayList()    ----> add '?' after Cohort
    private fun fillFromDao() {
        val notesObserver: Observer<ArrayList<Cohort?>?>? =
            Observer { cohort: ArrayList<Cohort?>? ->
                    list.toMutableList().addAll(cohort!!) ----> add '!!' after Cohort
            }
        if (notesObserver != null) {
            otherDialogFragmentViewModel.fetchIsFree()?.observe(this, notesObserver)
            otherDialogFragmentViewModel.fetchHasCertificate()?.observe(this, notesObserver)
        }
    }
0 голосов
/ 07 апреля 2020

list переменная типа List<Cohort>, но notesObserver тип значения равен ArrayList<Cohort?>: поэтому notesObserver значение может иметь допускающих значение элементов.

Таким образом, либо list переменная должна принимать обнуляемый или notesObserver не должна иметь обнуляемых значений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...