Data Class
Kotlin中的Data Class主要用于封装和持有数据,作用类似Java中的POJO对象。
data class User(nickname: String, sex: Int, age: Int)
在class之前加上 data 关键字即可声明一个Data Class。
Kotlin中编译器会自动为Data Class实现
- equals()方法
- hashcode()方法
- toString()方法
- componentN()解构声明方法
- copy()方法
我们可以实现自己的equals()方法、hashcode()方法和toString()方法来覆盖自动生成的实现。但是对于 componentN() 方法和copy()方法是不允许覆盖的。
copy() 方法用于实现对Data Class对象的浅拷贝。
同时,对于Data Class还有如下限制:
- 主构造函数必须至少拥有一个参数
- 主构造函数的所有参数都必须使用 var 或者 val 关键字修饰
- Data Class不能使用 open、abstract、sealed 和 inner 关键字修饰