0

更新/修改 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()
4

1 回答 1

1

您可以使用forEach函数遍历列表的每个元素并更改每个元素的属性。例如:

carList.forEach { it.imageUri = Uri.EMPTY }
Gson().toJson(carList)

另一种选择是onEach

Gson().toJson(carList.onEach { it.imageUri = Uri.EMPTY })

它们之间的区别在于,onEach函数在对每个元素执行给定的操作后返回集合本身,而forEach不是。

于 2022-01-21T19:51:04.200 回答