更新/修改MutableList中对象属性的表达方式是什么?
data class Car(
var imageUri: Uri,
var description: String = ""
)
我希望imageUri
值在某个时刻为空,同时保留其描述,所以这就是我尝试的。
Gson().toJson(carList.map { it.imageUri = Uri.EMPTY }) //Clear image URI of all car
但是,当使用Gson将列表转换为JSON字符串表示时,该列表将变为空。
"[{},{}]"
我可以这样做,但不确定这是否是最好的。
carList.map { Gson().toJson(Car(Uri.EMPTY, it.description)) }.toString()
您可以使用forEach
函数迭代列表中的每个元素,并更改每个元素的属性。例如:
carList.forEach { it.imageUri = Uri.EMPTY }
Gson().toJson(carList)
另一种选择是onEach
:
Gson().toJson(carList.onEach { it.imageUri = Uri.EMPTY })
它们之间的区别在于,onEach
函数在对每个元素执行给定操作后返回集合本身,而forEach
则不返回。