equals() 但不重写 hashCode()(或者相反操作)的类。
同时还报告重写 equals() 或 hashCode() 的对象声明。
这可能会导致在将类添加到 Collection 时产生不良行为
示例:
class C1 {
override fun equals(other: Any?) = true
}
class C2 {
override fun hashCode() = 0
}
object O1 {
override fun equals(other: Any?) = true
}
object O2 {
override fun hashCode() = 0
}
该快速修复会为类重写 equals() 或 hashCode() 方法并为对象删除这些方法:
class C1 {
override fun equals(other: Any?) = true
override fun hashCode(): Int {
return javaClass.hashCode()
}
}
class C2 {
override fun hashCode() = 0
override fun equals(other: Any?): Boolean {
if (this === other) return true
if (javaClass != other?.javaClass) return false
return true
}
}
object O1 {
}
object O2 {
}