【问题标题】:Add Function of my MutableList doesn't work我的 MutableList 的添加功能不起作用
【发布时间】:2019-01-01 21:29:46
【问题描述】:

所以我得到了这段代码,但不知何故“添加”功能不起作用。 “许可”列表没问题,if-case 也被触发。但是最后一个“日志”仍然显示许可调制的“空”。有什么想法吗?

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())
    }
}

【问题讨论】:

    标签: kotlin gson mutablelist


    【解决方案1】:

    由于这一行,您的MutableList? 始终为空:

    val permits_modulated : MutableList<Schueler>? = null
    

    这表示“创建一个名为 permit_modulated 的 val(不能更改),其类型为可为空的 MutableList,并将其值设置为 null”。

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

    val permits_modulated = mutableListOf<Scheduler>()
    

    或者:

    val permits_modulated: MutableList<Scheduler> = mutableListOf()
    

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

     permits_modulated.add(permit)
    

    【讨论】:

    • 非常感谢!但为什么会这样,我已经看到几个教程在一开始就以这种方式声明了一个编辑文本,然后用“onCreate”函数中的内容对其进行初始化?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-08
    • 2013-04-05
    • 2020-03-28
    • 1970-01-01
    • 2015-07-26
    • 2013-07-10
    • 2015-03-19
    相关资源
    最近更新 更多