首页 > 解决方案 > 如何创建任何类型的列表列表?

问题描述

我有一堆不同类型的列表:

            var downloadSpeedMbpsList = mutableListOf<Double>()
            var uploadSpeedMbpsList = mutableListOf<Double>()
            var pingMsList = mutableListOf<Double>()
            var jitterMsList = mutableListOf<Double>()

            var rsrpList = mutableListOf<Double>()//create lists with rsrp, rsrq, level, and later, time. Add then into the value for a higher order list as a value pair
            var rsrqList = mutableListOf<Double>()
            var levelList = mutableListOf<Int>()
            var isRegisteredList = mutableListOf<Int>()
            var earfcnList = mutableListOf<Int>()
            var cellIDList = mutableListOf<Int>()

现在我想将它们添加到我的列表列表中。但我希望列表是任何类型的;也就是说,我仍然可以写入的不同类型的列表:

 val listOfLists : MutableList<MutableList<Any?>> =  mutableListOf(downloadSpeedMbpsList, uploadSpeedMbpsList, pingMsList, jitterMsList, rsrpList,rsrqList,levelList, isRegisteredList, earfcnList, cellIDList)

但是,上面的代码给了我类型不匹配。它说右侧是“out Any”类型。如何强制右侧输入“任何”??

谢谢,

标签: kotlin

解决方案


您不能,因为DoubleandInt不是同一种类型,它们具有相同的根,NumberAny是最后输入。

您需要的是out表示层次结构的关键字。

val listOfLists : MutableList<MutableList<out Number?>>工作正常

val listOfLists : MutableList<MutableList<out Any?>>也可以

更多信息:


推荐阅读