Как реализовать equals / hashcode в kotlin? - PullRequest
0 голосов
/ 24 октября 2019

Я использую мой поиск равных / хэш-кодов в kotlin

Я понимаю, что равно и (==) отлично работает с классами данных, но с обычным классом, я полагаю, мы должны переопределить методы equals и hashcode:

class GroupWithData {

    var group: Group? = null

    var data: List<Data>? = null


    override fun equals(other: Any?): Boolean {
        if (this === other) return true
        if (javaClass != other?.javaClass) return false

        other as GroupWithData

        if (group!= other.group) return false
        if (data!= other.data) return false

        return true
    }

    override fun hashCode(): Int {
        var result = group?.hashCode() ?: 0
        result = 31 * result + (data?.hashCode() ?: 0)
        return result
    }

Но когда я пытаюсь равняться двум спискам, это не работает правильно.

PS: классы групп и данных являются "классом данных"

...