Android 比较两个对象在kotlin中是相同的
我有一个两个kotlin对象,它们是非常相同的数据,没有任何更改,但返回值为false。如果两个对象相同,则必须返回true,只有当更改时,才应返回false 进行检查的对象包括:Android 比较两个对象在kotlin中是相同的,android,object,kotlin,Android,Object,Kotlin,我有一个两个kotlin对象,它们是非常相同的数据,没有任何更改,但返回值为false。如果两个对象相同,则必须返回true,只有当更改时,才应返回false 进行检查的对象包括: private var emp1: Employee? = null var emp2: Employee? = null fun dataChanged(): Boolean { return if (emp1 != null && emp2 != null) {
private var emp1: Employee? = null
var emp2: Employee? = null
fun dataChanged(): Boolean {
return if (emp1 != null && emp2 != null) {
emp1 != emp2
} else {
false
}
}
我检查了日志中的数据,它没有改变任何东西,甚至没有改变空间
以下是雇员薪酬:
data class Employee(
//...
): Parcelable {
//...
}
没有equals和hashcode
此处用于更改edittext上的数据更改->TextInputItemText,TextWatcher。任何建议,在哪里,我做错了。
提前感谢。定义
数据类时,请从中声明的所有属性中选择以下成员:
- 等于()/hashCode()对李>
因此,equals
方法的执行取决于主构造函数的参数
如果您在主构造函数中使用一些其他对象,请确保它们也是数据
类,或者具有重写的等于
方法
我建议在比较两个对象之前放置日志,并检查它们是否包含相同的数据
编辑:
我有一个两个kotlin对象,它们是非常相同的数据,没有任何更改,但返回值为false
由于条件emp1!=emp2
。函数名表示,如果对象不相同,它将返回true
;如果对象相同,即数据未更改,则返回false
。因此,函数dataChanged()
按预期工作。定义data
类时,从中声明的所有属性中选择以下成员:
- 等于()/hashCode()对李>
因此,equals
方法的执行取决于主构造函数的参数
如果您在主构造函数中使用一些其他对象,请确保它们也是数据
类,或者具有重写的等于
方法
我建议在比较两个对象之前放置日志,并检查它们是否包含相同的数据
编辑:
我有一个两个kotlin对象,它们是非常相同的数据,没有任何更改,但返回值为false
由于条件emp1!=emp2
。函数名表示,如果对象不相同,它将返回true
;如果对象相同,即数据未更改,则返回false
。因此函数dataChanged()
按预期工作。如何定义Employee
编辑了我的问题。您的示例仍然不完整,我无法复制它。所有属性Employee
是否也实现了equals
(通过重写或通过data class
)?也许这与此无关,只要提醒一下,如果一个对象为null,那么dataChanged()方法将始终返回false
。无论另一个是否更改。能否将2对象打印到Logcat并在此处共享日志Employee
是如何定义的?编辑了我的问题。您的示例仍然不完整,我无法复制它。所有属性Employee
是否也实现了equals
(通过重写或通过data class
)?也许这与此无关,只要提醒一下,如果一个对象为null,那么dataChanged()方法将始终返回false
。无论其他对象是否更改。您是否可以将2个对象打印到Logcat并在此处共享添加的日志数据。如果您添加了Employee
类的整个定义,它将在我这边进行检查。此外,我还看到另一个对象Money
和枚举,请也添加它们的定义。请检查我编辑的答案,可能您在理解dataChanged
函数的用途时有错误。添加了日志数据。如果您添加了Employee
类的完整定义,它会在我这边进行检查。此外,我看到另一个对象Money
和枚举,请也添加它们的定义。请检查我编辑的答案,可能您在理解dataChanged
函数的用途时有错误。