有没有办法在不指定所有属性的情况下合并 kotlin 数据类?
data class MyDataClass(val prop1: String, val prop2: Int, ...//many props)
具有以下签名的函数:
fun merge(left: MyDataClass, right: MyDataClass): MyDataClass
此函数检查两个类的每个属性以及它们不同的位置,使用左侧参数创建一个新的 MyDataClass。
这可能使用 kotlin-reflect 或其他方式吗?
编辑:更清晰
这是对我想要做的事情的更好描述
data class Bob(
val name: String?,
val age: Int?,
val remoteId: String?,
val id: String)
@Test
fun bob(){
val original = Bob(id = "local_id", name = null, age = null, remoteId = null)
val withName = original.copy(name = "Ben")
val withAge = original.copy(age = 1)
val withRemoteId = original.copy(remoteId = "remote_id")
//TODO: merge without accessing all properties
// val result =
assertThat(result).isEqualTo(Bob(id = "local_id", name = "Ben", age=1, remoteId = "remote_id"))
}