Функция добавления моего MutableList не работает

Итак, я получил этот кусок кода, но почему-то функция "добавить" не работает. Список разрешений в порядке, и случай if также запускается. Но последний "Журнал" все еще показывает "ноль" для permits_modulated. Любая идея?

val permits: List<Schueler> = gson.fromJson(body, Array<Schueler>::class.java).toList()
val permits_modulated: MutableList<Schueler>? = null
for (permit in permits) {
    Log.d("permit in permits", permit.toString() + " " + permit.vorname)
    if (permit.vorname == name) {
        permits_modulated?.add(permit)
        Log.d("permit.vorname == name", permit.toString() + " " + permit.vorname)
        Log.d("permit_modulated in if", permits_modulated.toString())
    }
}

1 ответ

Решение

Ваш MutableList? всегда будет нулевым из-за этой строки:

val permits_modulated : MutableList<Schueler>? = null

Это говорит: "создайте значение val (которое нельзя изменить) с именем permits_modulated, типа nullable MutableList, и установите для него значение null".

Чтобы обойти это, вы можете объявить это как имеющее ненулевое значение, и удаляющее обнуляемость из типа:

val permits_modulated = mutableListOf<Scheduler>()

Или же:

val permits_modulated: MutableList<Scheduler> = mutableListOf()

А потом, когда вы добавите, вы можете игнорировать обнуляемость, потому что permits_modulated всегда будет иметь значение, которое не является нулевым:

 permits_modulated.add(permit)
Другие вопросы по тегам