CustomAdapter类接受代码B中的List参数,但为什么我可以使用CodeAapter通过传递MutableList参数创建一个CustomAdapter对象?
代码A
private lateinit var allList: MutableList<MSetting>
allList=SettingHandler().getListAllSetting().toMutableList()
mCustomAdapter= CustomAdapter(allList)
mRecyclerView.adapter= mCustomAdapter
代码B
class CustomAdapter (val backupItemList: List<MSetting>) : RecyclerView.Adapter<CustomAdapter.ViewHolder>() {
}
答案 0 :(得分:1)
如果查看MutableList
的来源,您会看到MutableList
扩展List
,这就是为什么您可以将MutableList
传递给期望List
的函数的原因1}}:
public interface MutableList<E> : List<E>
MutableList
只是为List
类型添加了新功能,使其变得可变。