为什么我可以将MutableList参数传递给接受Kotlin中List参数的类?

时间:2018-04-11 07:55:14

标签: kotlin

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

1 个答案:

答案 0 :(得分:1)

如果查看MutableList的来源,您会看到MutableList扩展List,这就是为什么您可以将MutableList传递给期望List的函数的原因1}}:

public interface MutableList<E> : List<E>

MutableList只是为List类型添加了新功能,使其变得可变。