我有一个数据类,我需要初始化一些List<String>
。我需要获取JsonArray的值(我使用Gson)。
我做了这个功能:
private fun arrayToList(data: JsonArray, key: String): List<String> {
val list = mutableListOf<String>()
data.forEach { a ->
list.add(a[key].asString)
}
return list
}
如何转换为lambda表达式?
感谢。
答案 0 :(得分:5)
我认为您正在寻找map
操作:
data.map { a -> a[key].asString }
或者您可以使用默认参数名称it
:
data.map { it[key].asString }
答案 1 :(得分:3)
如果您使用map
功能,则可以将其写为单个表达式...
private fun arrayToList(data: JsonArray, key: String): List<String> =
data.map { it[key].asString }
map
函数接受一种类型的参数并将其转换为另一种类型。我也正在利用Kotlin中的默认元素名称it
这一事实,因此我不必像在Java中那样明确地定义一些东西。所以这就是说“对于data
中的每个对象,获取key
值并在其上调用.asString
。这会自动转换为List
。