Back to questions
Junior — Middle
70
Можно ли осуществить переопределение метода hashCode в дата-классе?
Companies where asked
ВанТу Ворк
Answer from AI
sobes.tech AI
Да, в дата-классе Kotlin можно переопределить метод hashCode(). По умолчанию компилятор генерирует реализацию hashCode() (и equals()) на основе всех свойств, объявленных в конструкторе класса.
Если требуется изменить логику вычисления хэш-кода, можно явно переопределить метод:
data class User(val id: Int, val name: String) {
override fun hashCode(): Int {
// Например, использовать только id для хэш-кода
return id.hashCode()
}
}
Однако стоит быть осторожным: переопределение hashCode() должно быть согласовано с equals(), чтобы избежать нарушений контрактов этих методов.