-
定义 :
data是 Kotlin 中的一个关键字,用于声明一个数据类(data class)。 -
作用 :自动生成一些常用的方法(如
equals()、hashCode()、toString()、copy()等),并支持解构声明。- 限制 :
- 必须至少有一个主构造函数参数。
- 主构造函数中的参数会被用于生成方法。
- 不能直接继承其他普通类(只能实现接口或继承
sealed class)。
解构声明
sealed class Result
data class Success(val data: Any) : Result()
fun main() {
val successResult = Success("Success Data")
// 解构属性
val (data) = successResult
println(data)
}
与Java中lombok注解@Data的区别
| 语言内置支持 | 是(Kotlin 原生支持)。 | 否(需要引入 Lombok 库)。 |
|---|---|---|
| 自动生成的方法 | 自动生成equals()、hashCode()、toString()、copy()等方法。 | 自动生成 getter、setter、equals()、hashCode()、toString()等方法。 |
| 解构支持 | 支持解构声明(Destructuring Declarations)。 | 不支持解构声明。 |
| 继承限制 | 不能直接继承其他普通类(只能实现接口或继承sealed class)。 | 没有继承限制,可以正常继承其他类。 |
| 简洁性 | 更加简洁,无需额外依赖。 | 需要引入 Lombok 库,并配置 IDE 和构建工具。 |
| 灵活性 | 适合简单的数据模型,不适用于复杂逻辑。 | 更灵活,适用于各种场景(包括复杂逻辑)。 |
双链
| 双链 | |
|---|---|
| 密封类sealed class |