Junior — Middle
É possível sobrescrever o método hashCode numa data class?
sobes.tech IA
Resposta da IA
Sim, na classe de dados Kotlin é possível sobrescrever o método hashCode(). Por padrão, o compilador gera uma implementação de hashCode() (e equals()) com base em todas as propriedades declaradas no construtor da classe.
Se for necessário alterar a lógica de cálculo do hash, pode-se sobrescrever explicitamente o método:
data class User(val id: Int, val name: String) {
override fun hashCode(): Int {
// Por exemplo, usar apenas o id para o hash
return id.hashCode()
}
}
No entanto, deve-se ter cuidado: a sobrescrição de hashCode() deve estar de acordo com equals() para evitar violações dos contratos desses métodos.