您当前的位置: 首页 >  kotlin

蓝不蓝编程

暂无认证

  • 0浏览

    0关注

    706博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Kotlin调用list的addAll添加对象时报错解决方法

蓝不蓝编程 发布时间:2019-01-11 10:36:13 ,浏览量:0

报错信息:

Smart cast to ‘List’ is impossible, because ‘data.list’ is a mutable propert that could have been changed by this time image.png 对应代码:

if (data.list != null) {
    mDataList.addAll(data.list)
 }
原因

Kotlin不允许往集合中添加null值,虽然签名做了空判断,但是怕在调用addAll时对应值仍然被修改为null(脑子有问题)。

解决方案

方式1. data.list?.let(mDataList::addAll) 方式2. data.list?.let { node -> mDataList.addAll(node) } 方式3. data.list?.let { mDataList.addAll(it) } 方式4. mDataList.addAll(data.list ?: return) 方式5.

val temp = data.list
if (temp != null) {
    mDataList.addAll(temp)
}
参考资料

https://stackoverflow.com/questions/44595529/smart-cast-to-type-is-impossible-because-variable-is-a-mutable-property-tha

安卓开发技术分享: https://blog.csdn.net/yinxing2008/article/details/84555061

关注
打赏
1639405877
查看更多评论
立即登录/注册

微信扫码登录

0.0411s