我有一个数据类,在val类型上有3个字段。
data class Person(
val id: UUID? = null,
val name: String,
val address: String?
)
我有一个家庭类,其中包含:
val familyId: UUID? = null,
val pList: List<Person>
在另一个类中,我必须迭代pList
,但我需要在从另一个映射中获取该人的地址字段时,根据id。
我知道我可以使用copy()
方法来填充一个不可变的字段,但我不确定如何准确地做到这一点。我试过这样的东西,但似乎不起作用。
family.pList.forEach {
it.copy(address = ‘I am getting this value from a map’ )
}
我原以为地址会填充新值,但事实并非如此。
请注意,pList中的地址字段未填充。
copy
函数返回对象的一个新实例,其中包含调用copy
时提供的填充字段。因此,您需要将新对象保存在某个位置。正如所写的,您的方法是创建一个复制的对象,并立即丢弃它。
我会这么做:
val withAddresses = family.pList.map {
it.copy(address = "I am getting this value from a map")
}
新变量withAddresses引用填充了地址字段的Person对象列表。