Назад к вопросам
Junior
120
questionbank
Какие методы существуют у data class в Kotlin?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
У data class в Kotlin автоматически генерируются следующие методы:
equals(): Сравнивает объекты по значению свойств, объявленных в конструкторе.hashCode(): Генерирует хеш-код на основе свойств, объявленных в конструкторе.toString(): Возвращает строковое представление объекта в формате"ClassName(prop1=value1, prop2=value2)".copy(): Создает новый объект, копируя свойства оригинала, с возможностью изменения некоторых свойств.componentN(): Генерирует функцииcomponent1(),component2()и так далее для каждого свойства в порядке их объявления, что позволяет использовать деструктивное объявление.
data class User(val name: String, val age: Int)
fun main() {
val user1 = User("Alice", 30)
val user2 = User("Alice", 30)
val user3 = User("Bob", 25)
// equals()
println(user1 == user2) // true
println(user1 == user3) // false
// hashCode()
println(user1.hashCode())
println(user2.hashCode())
// toString()
println(user1.toString()) // User(name=Alice, age=30)
// copy()
val user4 = user1.copy(age = 31)
println(user4) // User(name=Alice, age=31)
// componentN() and Destructuring Declaration
val (name, age) = user1
println("Name: $name, Age: $age") // Name: Alice, Age: 30
}