Kotlin中如何为ArrayList赋值null?解决非空类型报错问题
在Kotlin中给ArrayList添加null值的解决方案
嘿,这个问题我太清楚啦!Kotlin的空安全设计和Java不一样,这就是你遇到报错的核心原因~
你写的ArrayList<CustomClass>在Kotlin里表示这个列表只能存储非空的CustomClass实例,因为Kotlin默认的泛型类型都是非空的,所以你调用mList.add(null)时,编译器会直接报错提示“null不能作为非空类型的值”。而Java没有这种严格的空安全约束,所以可以直接插入null。
要解决这个问题非常简单,只需要把泛型类型改成可空类型就行,也就是在CustomClass后面加个问号:
var mList = ArrayList<CustomClass?>() mList.add(null) // 现在这行代码就可以正常执行啦
刚好你是用来实现RecyclerView的加载更多功能,用null作为加载更多的占位符是很常见的做法。之后在你的RecyclerView Adapter里,只需要判断当前item是否为null,就可以切换到加载更多的布局,完全不影响正常业务逻辑~
内容的提问来源于stack exchange,提问作者Mohit Suthar
相关产品推荐
相关产品推荐

