Kotlin corda中两种状态的比较

Kotlin corda中两种状态的比较,kotlin,corda,Kotlin,Corda,我在科尔达创建了两个州。现在我想比较这两个状态的字段,并基于比较创建第三个状态。可能吗?如果可能的话,怎么做?除了比较每个字段之外,还有什么理想的编程解决方案吗?如果使用Kotlin,可以使用数据类:例如,以下内容将返回true: data class Person(val name: String) val person1 = Person("John") val person2 = Person("John") person1 == person2 data class Person(va

我在科尔达创建了两个州。现在我想比较这两个状态的字段,并基于比较创建第三个状态。可能吗?如果可能的话,怎么做?除了比较每个字段之外,还有什么理想的编程解决方案吗?

如果使用Kotlin,可以使用数据类:例如,以下内容将返回
true

data class Person(val name: String)
val person1 = Person("John")
val person2 = Person("John")
person1 == person2
data class Person(val name: String, val age: Int, val address: String)
val person1 = Person("John", 24, "London")
val person2 = Person("John", 25, "London")
person1 == person2.copy(age = person1.age)
因为相等性仅基于主构造函数中的字段确定。或者,您可以重写类的
equals
方法

如果您只是尝试比较一些字段,则可以在大型
If
语句中直接比较它们。但是,如果您使用的是
数据
类,也可以通过创建一个副本来比较它们,其中不想比较的字段在两种情况下都设置为相等。例如,以下内容将返回
true

data class Person(val name: String)
val person1 = Person("John")
val person2 = Person("John")
person1 == person2
data class Person(val name: String, val age: Int, val address: String)
val person1 = Person("John", 24, "London")
val person2 = Person("John", 25, "London")
person1 == person2.copy(age = person1.age)

val loadingState=loadingState(“T1”,“NET”,100,ourIdentity,“initialized”)val loadingState2=loadingState(“T2”,“NET”,100,ourIdentity,“initialized”),如果(loadingState==loadingState2){loadingState.updateStatus(“Cleared”)}否则{loadingState.updateStatus(“notcleared”)}这就是你的意思吗?是的,只要它们是
data
classes:)谢谢。但是如果我有一个要求,我只想比较两个州的5个字段中的3个字段呢?那我怎么过滤呢?