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(json)
总之,Kotlin 数据类提供了一种简洁、易读的方式来处理复杂的数据结构。通过自动生成的方法和扩展属性,你可以轻松地操作和处理数据类实例。