data 类中报告具有 Array 类型的属性,而不覆盖 equals()hashCode()

数组参数被采用引用等于进行了比较,这可能是一种意外行为。 在这种情况下,强烈建议覆盖 equals()hashCode()

示例:


  数据类文本 (val 行: 数组<String>)

建议通过快速修复会生成缺失的 equals()hashCode() 实现:


  data class Text(val lines: Array<String>) {
      override fun equals(other: Any?): Boolean {
          if (this === other) return true
          if (javaClass != other?.javaClass) return false

          other as Text

          if (!lines.contentEquals(other.lines)) return false

          return true
      }

      override fun hashCode(): Int {
          return lines.contentHashCode()
      }
  }