报告重写 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 {
   }