我只想将状态更改为字段。所以我正在做的事情就像是处于消耗状态(在更新之前将具有初始状态)和未消耗状态(这将是具有更新字段的最新状态)。现在我具有这两个状态,那么我该怎么做才能找到更改的字段(字段名称)?
答案 0 :(得分:2)
您可以利用反射来实现。以下是Kotlin代码段
fun compareFields(lineItem1: State1, lineItem2: State1): List<String> {
val differentFieldsNames = ArrayList<String>()
val differentFields = State1::class.memberProperties.filter {
val startValue = it.get(lineItem1)
val endValue = it.get(lineItem2)
!Objects.deepEquals(startValue, endValue)
}
differentFields.forEach {
println("Fields not matching "+" "+it.name)
differentFieldsNames.add(it.name)
}
return differentFieldsNames
}