class A(val n: IntArray?, val s: Array?) { val f: Float = 1.0f fun foo() { } override fun equals(other: Any?): Boolean { if (this === other) return true if (javaClass != other?.javaClass) return false other as A if (n != null) { if (other.n == null) return false if (!n.contentEquals(other.n)) return false } else if (other.n != null) return false if (s != null) { if (other.s == null) return false if (!s.contentEquals(other.s)) return false } else if (other.s != null) return false if (f != other.f) return false return true } override fun hashCode(): Int { var result = n?.contentHashCode() ?: 0 result = 31 * result + (s?.contentHashCode() ?: 0) result = 31 * result + f.hashCode() return result } }