我的MutableList的添加功能不起作用

时间:2019-01-01 21:29:46

标签: kotlin gson mutablelist

所以我得到了这段代码,但是以某种方式“添加”功能不起作用。 “允许”列表没问题,并且if-case也被触发。但是最后一个“ Log”仍然显示allows_modulated的“ null”。有想法吗?

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 个答案:

答案 0 :(得分:1)

由于以下这一行,您的MutableList?总是为空:

val permits_modulated : MutableList<Schueler>? = null

这是说“创建一个名为allows_modulated的val(无法更改),其类型为nullable MutableList,并将其值设置为null”。

为了解决这个问题,可以将其声明为具有非null值,并从类型中删除可为空性:

val permits_modulated = mutableListOf<Scheduler>()

或者:

val permits_modulated: MutableList<Scheduler> = mutableListOf()

然后,当您添加时,您可以忽略可为空性,因为permits_modulated将始终具有不为null的值:

 permits_modulated.add(permit)