我在corda中创建了两个状态。现在我想比较这两个状态的字段,并根据比较创建第三个状态。可能吗?如果可能怎么做?除了比较每个字段之外,还有其他理想的编程解决方案吗?
答案 0 :(得分:0)
如果您使用的是Kotlin,则可以使用数据类:https://kotlinlang.org/docs/reference/data-classes.html例如,以下内容将返回true
:
data class Person(val name: String)
val person1 = Person("John")
val person2 = Person("John")
person1 == person2
因为等式仅基于主构造函数中的字段确定。或者,您可以覆盖班级的equals
方法。
如果您只是想比较某些字段,可以直接在大if
语句中对它们进行比较。但是,如果您使用的是data
类,则还可以通过创建一个副本来比较它们,其中不想要比较的字段在两个实例中都设置为相等。例如,以下内容将返回true
:
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)