Kotlin出现Type mismatch: Required TestList Found String报错如何解决?
报错触发原因
- 你定义的
recList是ArrayList<TestList>类型,仅支持存入TestList类的实例,但循环中调用recList.add()时传入的key是字符串类型,和要求的元素类型不匹配,因此触发类型不匹配报错。 TestList类的构造参数要求传入ArrayList<String>(字符串数组),而非单个字符串,即便是要封装字符串为TestList实例,也不能直接传入单个String类型参数。
修复方案
可根据你的实际业务需求二选一:
- 每个
key对应一个TestList实例存入recList
for((key) in data.legends.all){ // 先将单个字符串封装为ArrayList,再传入TestList构造方法生成实例后存入列表 recList.add(TestList(arrayListOf(key))) }
- 所有
key存入同一个TestList的name数组,最终recList仅存一个TestList实例
val nameList = ArrayList<String>() for((key) in data.legends.all){ nameList.add(key) } recList.add(TestList(nameList))
内容的提问来源于stack exchange,提问作者Ethernets
相关产品推荐
相关产品推荐

