Junior
Comment implémenter et utiliser des classes de données en Kotlin?
sobes.tech IA
Réponse de l'IA
Les classes de données sont utilisées pour stocker des données. Le compilateur génère automatiquement pour elles des méthodes utiles telles que equals(), hashCode(), toString(), copy() et les fonctions componentN().
Implémentation : déclaration de la classe avec le préfixe data.
data class User(val name: String, val age: Int)
Utilisation :
Création d'une instance :
val user = User("Alice", 30)
Accès aux propriétés :
val name = user.name // Alice
val age = user.age // 30
Utilisation des méthodes générées :
println(user.toString()) // User(name=Alice, age=30)
val anotherUser = User("Alice", 30)
println(user == anotherUser) // true (equals() généré)
val olderUser = user.copy(age = 31) // User(name=Alice, age=31)
val (userName, userAge) = user // Déstructuration
println("Name: $userName, Age: $userAge") // Name: Alice, Age: 30
Caractéristiques :
- Tous les paramètres du constructeur principal doivent être
valouvar. - Les classes de données ne peuvent pas être
abstract,open,sealedouinner. - Les propriétés du corps de la classe ne participent pas à la génération des méthodes (
equals,hashCode,copy,componentN).
data class Person(val name: String) {
var height: Int = 0 // Ne participe pas à equals/hashCode/copy/componentN
}
val p1 = Person("Bob")
p1.height = 180
val p2 = Person("Bob")
p2.height = 190
println(p1 == p2) // true