Kotlin 数据类(data class)是一种简化数据结构创建和操作的方式
data class
关键字:在类前加上 data
关键字,可以将其声明为数据类。数据类会自动生成一些通用方法,如 equals()
、hashCode()
和 toString()
等。data class User(val name: String, val age: Int, val address: Address)
data class Address(val street: String, val city: String, val country: String)
使用主构造函数:数据类必须有一个主构造函数,该构造函数接收与属性数量相同的参数,并为这些参数提供类型注解。
自动生成 equals()
、hashCode()
和 toString()
方法:由于数据类包含属性,因此它们会自动生成 equals()
、hashCode()
和 toString()
方法。这使得比较对象、将对象转换为字符串等操作变得非常简单。
使用解构声明:数据类支持解构声明,这意味着你可以将数据类的属性提取到单独的变量中。
val (name, age, address) = user
fun User.getFullName(): String {
return "$name ${address.city}"
}
copy()
函数:当你需要创建一个数据类的副本时,可以使用 copy()
函数。这个函数允许你修改某些属性,同时保留其他属性的值。val newUser = user.copy(age = user.age + 1)
toDataClass()
函数:在某些情况下,你可能需要将一个复杂的数据结构转换为数据类。你可以使用 toDataClass()
函数来实现这一目标。val json = """{"name":"John", "age":30, "address":{"street":"Main St", "city":"New York", "country":"USA"}}"""
val user = Json.decodeFromString<User>(json)
总之,Kotlin 数据类提供了一种简洁、易读的方式来处理复杂的数据结构。通过自动生成的方法和扩展属性,你可以轻松地操作和处理数据类实例。