我们经常会需要创建一个这样的类:仅用于承载数据,而无其他作用。这样的类中一些标准函数通常可以从数据中机械性的生成。在kotlin中,这种类叫做data class,被标记为 data。(e.g:java中的bean类与其set,get,toString等方法)。
Example
In Java
1 | public class Developer { |
In Kotlin
1 | data class Developer(val name: String, val age: Int) |
当一个类被标记为 data class时,你不需要像Java中那样,去实现或者创建以下这些方法。
- hashCode()
- equals()
- toString()
- copy()
编译器会自动地创建这些内部关联,所以kotlin同样引领了一个使代码整洁的潮流。
尽管如此,data class 需要满足的需求很少:
- 主构造函数需要至少一个参数。
- 所有的主构造函数参数需要被标记为val 或者 var。
- Data Class不能是 abstract, open, sealed or inner这些类别.
所以,当你遇到这些场景,使用data class吧