Kotlin中如何使用ListOfArrays存储4列数据库查询结果
正确实现方式
你需要的是元素类型为List<String>的可变列表,正确声明和调用方式如下:
// 声明可变列表,每个元素为包含4个字符串的列表 val output: MutableList<List<String>> = mutableListOf() // 添加每行查询结果,直接用listOf更符合Kotlin习惯 output.add(listOf("Field1", "Field2", "Field3", "Field4")) // 如果要沿用你之前的arrayOf写法也可以,转成List即可 output.add(arrayOf("Field1", "Field2", "Field3", "Field4").toList())
你之前写法的问题说明
var output: mutableList<List<String>>:仅声明了变量类型没有初始化,Kotlin要求局部变量必须在声明时赋值var output = mutableListOf<String>():该列表的元素类型为单个字符串,无法存入包含4个字段的集合var output = mutableListOf<ArrayList>:ArrayList未指定泛型参数,且缺少初始化的括号,存在语法错误- 最后一行是Java语法,Kotlin中没有
new关键字,也不需要用这种方式创建集合
可选优化方案
如果4个字段的含义固定,推荐用数据类存储每行结果,可读性和可维护性更好:
// 根据实际业务修改字段名和类型 data class QueryResultRow( val field1: String, val field2: String, val field3: String, val field4: String ) // 声明列表 val output = mutableListOf<QueryResultRow>() // 添加元素 output.add(QueryResultRow("Field1", "Field2", "Field3", "Field4"))
内容的提问来源于stack exchange,提问作者Husker
相关产品推荐
相关产品推荐

