Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/198.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 比较两个对象在kotlin中是相同的_Android_Object_Kotlin - Fatal编程技术网

Android 比较两个对象在kotlin中是相同的

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) {

我有一个两个kotlin对象,它们是非常相同的数据,没有任何更改,但返回值为false。如果两个对象相同,则必须返回true,只有当更改时,才应返回false

进行检查的对象包括:

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上的数据更改->TextInputItemTextTextWatcher。任何建议,在哪里,我做错了。
提前感谢。

定义
数据类时,请从中声明的所有属性中选择以下成员:

  • 等于()/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
函数的用途时有错误。