kotlin - 如何创建任何类型的列表列表?
问题描述
我有一堆不同类型的列表:
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”类型。如何强制右侧输入“任何”??
谢谢,
解决方案
您不能,因为Double
andInt
不是同一种类型,它们具有相同的根,Number
即Any
是最后输入。
您需要的是out
表示层次结构的关键字。
val listOfLists : MutableList<MutableList<out Number?>>
工作正常
val listOfLists : MutableList<MutableList<out Any?>>
也可以
更多信息:
推荐阅读
- java - 是否可以使用 jax-rs POST 方法发送两种不同的 Content-Type 来下载文件
- spring-boot - 配置spring-session-data-redis后无法启动spring-boot应用
- php - Symfony - uuid-doctrine - 从查询构建器返回 UUID 作为字符串
- assembly - 为什么这个 AT&T 汇编代码会出现分段错误?
- android - 我需要重复 requestLocationUpdates 还是只调用一次?
- python - 正则表达式是从一个字符串系列拆分为带有部分字符串的多个系列的最佳方法吗?
- javascript - jQuery hide 不隐藏 vb.net/asp.net webform 中的任何内容
- android - 如何根据手机屏幕大小自动调整视图大小
- python - xlwt/xlutils.copy 不保留单元格(我没有触摸)格式
- ios - 只替换字符串中的粗体字,Swift