Junior — Middle
Czy można nadpisać metodę hashCode w klasie danych?
sobes.tech AI
Odpowiedź od AI
Да, в дата-классе Kotlin можно переопределить метод hashCode(). По умолчанию компилятор генерирует реализацию hashCode() (и equals()) на основе всех свойств, объявленных в конструкторе класса.
Если требуется изменить логику вычисления хэш-кода, можно явно переопределить метод:
data class User(val id: Int, val name: String) {
override fun hashCode(): Int {
// Например, использовать только id для хэш-кода
return id.hashCode()
}
}
Однако стоит быть осторожным: переопределение hashCode() должно быть согласовано с equals(), чтобы избежать нарушений контрактов этих методов.